OLD | NEW |
1 /* | 1 /* |
2 * sync.h | 2 * sync.h |
3 * | 3 * |
4 * Copyright 2012 Google, Inc | 4 * Copyright 2012 Google, Inc |
5 * | 5 * |
6 * Licensed under the Apache License, Version 2.0 (the "License"); | 6 * Licensed under the Apache License, Version 2.0 (the "License"); |
7 * you may not use this file except in compliance with the License. | 7 * you may not use this file except in compliance with the License. |
8 * You may obtain a copy of the License at | 8 * You may obtain a copy of the License at |
9 * | 9 * |
10 * http://www.apache.org/licenses/LICENSE-2.0 | 10 * http://www.apache.org/licenses/LICENSE-2.0 |
11 * | 11 * |
12 * Unless required by applicable law or agreed to in writing, software | 12 * Unless required by applicable law or agreed to in writing, software |
13 * distributed under the License is distributed on an "AS IS" BASIS, | 13 * distributed under the License is distributed on an "AS IS" BASIS, |
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
15 * See the License for the specific language governing permissions and | 15 * See the License for the specific language governing permissions and |
16 * limitations under the License. | 16 * limitations under the License. |
17 */ | 17 */ |
18 | 18 |
19 #ifndef __SYS_CORE_SYNC_H | 19 #ifndef _THIRD_PARTY_SYNC_H |
20 #define __SYS_CORE_SYNC_H | 20 #define _THIRD_PARTY_SYNC_H |
21 | 21 |
22 #include <sys/cdefs.h> | 22 #include <sys/cdefs.h> |
23 #include <stdint.h> | 23 #include <stdint.h> |
24 | 24 |
25 __BEGIN_DECLS | 25 #ifdef __cplusplus |
| 26 extern "C" { |
| 27 #endif |
26 | 28 |
27 // XXX: These structs are copied from the header "linux/sync.h". | 29 // XXX: These structs are copied from the header "linux/sync.h". |
28 struct sync_fence_info_data { | 30 struct sync_fence_info_data { |
29 uint32_t len; | 31 uint32_t len; |
30 char name[32]; | 32 char name[32]; |
31 int32_t status; | 33 int32_t status; |
32 uint8_t pt_info[0]; | 34 uint8_t pt_info[0]; |
33 }; | 35 }; |
34 | 36 |
35 struct sync_pt_info { | 37 struct sync_pt_info { |
36 uint32_t len; | 38 uint32_t len; |
37 char obj_name[32]; | 39 char obj_name[32]; |
38 char driver_name[32]; | 40 char driver_name[32]; |
39 int32_t status; | 41 int32_t status; |
40 uint64_t timestamp_ns; | 42 uint64_t timestamp_ns; |
41 uint8_t driver_data[0]; | 43 uint8_t driver_data[0]; |
42 }; | 44 }; |
43 | 45 |
44 /* timeout in msecs */ | 46 /* timeout in msecs */ |
45 int sync_wait(int fd, int timeout); | 47 int sync_wait(int fd, int timeout); |
46 int sync_merge(const char *name, int fd1, int fd2); | 48 int sync_merge(const char *name, int fd1, int fd2); |
47 struct sync_fence_info_data *sync_fence_info(int fd); | 49 struct sync_fence_info_data *sync_fence_info(int fd); |
48 struct sync_pt_info *sync_pt_info(struct sync_fence_info_data *info, | 50 struct sync_pt_info *sync_pt_info(struct sync_fence_info_data *info, |
49 struct sync_pt_info *itr); | 51 struct sync_pt_info *itr); |
50 void sync_fence_info_free(struct sync_fence_info_data *info); | 52 void sync_fence_info_free(struct sync_fence_info_data *info); |
51 | 53 |
52 __END_DECLS | 54 #ifdef __cplusplus |
| 55 } |
| 56 #endif |
53 | 57 |
54 #endif /* __SYS_CORE_SYNC_H */ | 58 #endif /* _THIRD_PARTY_SYNC_H */ |
OLD | NEW |