Use an enum instead of #defines for panthor IOCTLs. This allows the header to be used with Rust code as bindgen can't handle complex defines.
Showing the changes to include/uapi (1 of 1 file). Show all
Unified · Split
| @@ -129,48 +129,6 @@ enum drm_panthor_ioctl_id { · 128 unmodified lines | |||
| 129 | DRM_PANTHOR_TILER_HEAP_DESTROY, | 129 | DRM_PANTHOR_TILER_HEAP_DESTROY, |
| 130 | }; | 130 | }; |
| 131 | 131 | ||
| 132 | /** | ||
| 133 | * DRM_IOCTL_PANTHOR() - Build a Panthor IOCTL number | ||
| 134 | * @__access: Access type. Must be R, W or RW. | ||
| 135 | * @__id: One of the DRM_PANTHOR_xxx id. | ||
| 136 | * @__type: Suffix of the type being passed to the IOCTL. | ||
| 137 | * | ||
| 138 | * Don't use this macro directly, use the DRM_IOCTL_PANTHOR_xxx | ||
| 139 | * values instead. | ||
| 140 | * | ||
| 141 | * Return: An IOCTL number to be passed to ioctl() from userspace. | ||
| 142 | */ | ||
| 143 | #define DRM_IOCTL_PANTHOR(__access, __id, __type) \ | ||
| 144 | DRM_IO ## __access(DRM_COMMAND_BASE + DRM_PANTHOR_ ## __id, \ | ||
| 145 | struct drm_panthor_ ## __type) | ||
| 146 | |||
| 147 | #define DRM_IOCTL_PANTHOR_DEV_QUERY \ | ||
| 148 | DRM_IOCTL_PANTHOR(WR, DEV_QUERY, dev_query) | ||
| 149 | #define DRM_IOCTL_PANTHOR_VM_CREATE \ | ||
| 150 | DRM_IOCTL_PANTHOR(WR, VM_CREATE, vm_create) | ||
| 151 | #define DRM_IOCTL_PANTHOR_VM_DESTROY \ | ||
| 152 | DRM_IOCTL_PANTHOR(WR, VM_DESTROY, vm_destroy) | ||
| 153 | #define DRM_IOCTL_PANTHOR_VM_BIND \ | ||
| 154 | DRM_IOCTL_PANTHOR(WR, VM_BIND, vm_bind) | ||
| 155 | #define DRM_IOCTL_PANTHOR_VM_GET_STATE \ | ||
| 156 | DRM_IOCTL_PANTHOR(WR, VM_GET_STATE, vm_get_state) | ||
| 157 | #define DRM_IOCTL_PANTHOR_BO_CREATE \ | ||
| 158 | DRM_IOCTL_PANTHOR(WR, BO_CREATE, bo_create) | ||
| 159 | #define DRM_IOCTL_PANTHOR_BO_MMAP_OFFSET \ | ||
| 160 | DRM_IOCTL_PANTHOR(WR, BO_MMAP_OFFSET, bo_mmap_offset) | ||
| 161 | #define DRM_IOCTL_PANTHOR_GROUP_CREATE \ | ||
| 162 | DRM_IOCTL_PANTHOR(WR, GROUP_CREATE, group_create) | ||
| 163 | #define DRM_IOCTL_PANTHOR_GROUP_DESTROY \ | ||
| 164 | DRM_IOCTL_PANTHOR(WR, GROUP_DESTROY, group_destroy) | ||
| 165 | #define DRM_IOCTL_PANTHOR_GROUP_SUBMIT \ | ||
| 166 | DRM_IOCTL_PANTHOR(WR, GROUP_SUBMIT, group_submit) | ||
| 167 | #define DRM_IOCTL_PANTHOR_GROUP_GET_STATE \ | ||
| 168 | DRM_IOCTL_PANTHOR(WR, GROUP_GET_STATE, group_get_state) | ||
| 169 | #define DRM_IOCTL_PANTHOR_TILER_HEAP_CREATE \ | ||
| 170 | DRM_IOCTL_PANTHOR(WR, TILER_HEAP_CREATE, tiler_heap_create) | ||
| 171 | #define DRM_IOCTL_PANTHOR_TILER_HEAP_DESTROY \ | ||
| 172 | DRM_IOCTL_PANTHOR(WR, TILER_HEAP_DESTROY, tiler_heap_destroy) | ||
| 173 | |||
| 174 | /** | 132 | /** |
| 175 | * DOC: IOCTL arguments | 133 | * DOC: IOCTL arguments |
| 176 | */ | 134 | */ |
| @@ -1019,6 +977,50 @@ struct drm_panthor_tiler_heap_destroy { · 842 unmodified lines | |||
| 1019 | __u32 pad; | 977 | __u32 pad; |
| 1020 | }; | 978 | }; |
| 1021 | 979 | ||
| 980 | /** | ||
| 981 | * DRM_IOCTL_PANTHOR() - Build a Panthor IOCTL number | ||
| 982 | * @__access: Access type. Must be R, W or RW. | ||
| 983 | * @__id: One of the DRM_PANTHOR_xxx id. | ||
| 984 | * @__type: Suffix of the type being passed to the IOCTL. | ||
| 985 | * | ||
| 986 | * Don't use this macro directly, use the DRM_IOCTL_PANTHOR_xxx | ||
| 987 | * values instead. | ||
| 988 | * | ||
| 989 | * Return: An IOCTL number to be passed to ioctl() from userspace. | ||
| 990 | */ | ||
| 991 | #define DRM_IOCTL_PANTHOR(__access, __id, __type) \ | ||
| 992 | DRM_IO ## __access(DRM_COMMAND_BASE + DRM_PANTHOR_ ## __id, \ | ||
| 993 | struct drm_panthor_ ## __type) | ||
| 994 | |||
| 995 | enum { | ||
| 996 | DRM_IOCTL_PANTHOR_DEV_QUERY = | ||
| 997 | DRM_IOCTL_PANTHOR(WR, DEV_QUERY, dev_query), | ||
| 998 | DRM_IOCTL_PANTHOR_VM_CREATE = | ||
| 999 | DRM_IOCTL_PANTHOR(WR, VM_CREATE, vm_create), | ||
| 1000 | DRM_IOCTL_PANTHOR_VM_DESTROY = | ||
| 1001 | DRM_IOCTL_PANTHOR(WR, VM_DESTROY, vm_destroy), | ||
| 1002 | DRM_IOCTL_PANTHOR_VM_BIND = | ||
| 1003 | DRM_IOCTL_PANTHOR(WR, VM_BIND, vm_bind), | ||
| 1004 | DRM_IOCTL_PANTHOR_VM_GET_STATE = | ||
| 1005 | DRM_IOCTL_PANTHOR(WR, VM_GET_STATE, vm_get_state), | ||
| 1006 | DRM_IOCTL_PANTHOR_BO_CREATE = | ||
| 1007 | DRM_IOCTL_PANTHOR(WR, BO_CREATE, bo_create), | ||
| 1008 | DRM_IOCTL_PANTHOR_BO_MMAP_OFFSET = | ||
| 1009 | DRM_IOCTL_PANTHOR(WR, BO_MMAP_OFFSET, bo_mmap_offset), | ||
| 1010 | DRM_IOCTL_PANTHOR_GROUP_CREATE = | ||
| 1011 | DRM_IOCTL_PANTHOR(WR, GROUP_CREATE, group_create), | ||
| 1012 | DRM_IOCTL_PANTHOR_GROUP_DESTROY = | ||
| 1013 | DRM_IOCTL_PANTHOR(WR, GROUP_DESTROY, group_destroy), | ||
| 1014 | DRM_IOCTL_PANTHOR_GROUP_SUBMIT = | ||
| 1015 | DRM_IOCTL_PANTHOR(WR, GROUP_SUBMIT, group_submit), | ||
| 1016 | DRM_IOCTL_PANTHOR_GROUP_GET_STATE = | ||
| 1017 | DRM_IOCTL_PANTHOR(WR, GROUP_GET_STATE, group_get_state), | ||
| 1018 | DRM_IOCTL_PANTHOR_TILER_HEAP_CREATE = | ||
| 1019 | DRM_IOCTL_PANTHOR(WR, TILER_HEAP_CREATE, tiler_heap_create), | ||
| 1020 | DRM_IOCTL_PANTHOR_TILER_HEAP_DESTROY = | ||
| 1021 | DRM_IOCTL_PANTHOR(WR, TILER_HEAP_DESTROY, tiler_heap_destroy), | ||
| 1022 | }; | ||
| 1023 | |||
| 1022 | #if defined(__cplusplus) | 1024 | #if defined(__cplusplus) |
| 1023 | } | 1025 | } |
| 1024 | #endif | 1026 | #endif |