NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
nvidia-drm-ioctl.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2016, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20  * OTHER DEALINGS IN THE SOFTWARE.
21  */
22 
23 #ifndef _UAPI_NVIDIA_DRM_IOCTL_H_
24 #define _UAPI_NVIDIA_DRM_IOCTL_H_
25 
26 #include <drm/drm.h>
27 
28 /*
29  * We should do our best to keep these values constant. Any change to these will
30  * be backwards incompatible with client applications that might be using them
31  */
32 #define DRM_NVIDIA_GET_CRTC_CRC32 0x00
33 #define DRM_NVIDIA_GEM_IMPORT_NVKMS_MEMORY 0x01
34 #define DRM_NVIDIA_GEM_IMPORT_USERSPACE_MEMORY 0x02
35 #define DRM_NVIDIA_GET_DEV_INFO 0x03
36 #define DRM_NVIDIA_FENCE_SUPPORTED 0x04
37 #define DRM_NVIDIA_PRIME_FENCE_CONTEXT_CREATE 0x05
38 #define DRM_NVIDIA_GEM_PRIME_FENCE_ATTACH 0x06
39 #define DRM_NVIDIA_GET_CLIENT_CAPABILITY 0x08
40 #define DRM_NVIDIA_GEM_EXPORT_NVKMS_MEMORY 0x09
41 #define DRM_NVIDIA_GEM_MAP_OFFSET 0x0a
42 #define DRM_NVIDIA_GEM_ALLOC_NVKMS_MEMORY 0x0b
43 #define DRM_NVIDIA_GET_CRTC_CRC32_V2 0x0c
44 #define DRM_NVIDIA_GEM_EXPORT_DMABUF_MEMORY 0x0d
45 #define DRM_NVIDIA_GEM_IDENTIFY_OBJECT 0x0e
46 #define DRM_NVIDIA_DMABUF_SUPPORTED 0x0f
47 #define DRM_NVIDIA_GET_DPY_ID_FOR_CONNECTOR_ID 0x10
48 #define DRM_NVIDIA_GET_CONNECTOR_ID_FOR_DPY_ID 0x11
49 #define DRM_NVIDIA_GRANT_PERMISSIONS 0x12
50 #define DRM_NVIDIA_REVOKE_PERMISSIONS 0x13
51 #define DRM_NVIDIA_SEMSURF_FENCE_CTX_CREATE 0x14
52 #define DRM_NVIDIA_SEMSURF_FENCE_CREATE 0x15
53 #define DRM_NVIDIA_SEMSURF_FENCE_WAIT 0x16
54 #define DRM_NVIDIA_SEMSURF_FENCE_ATTACH 0x17
55 #define DRM_NVIDIA_GET_DRM_FILE_UNIQUE_ID 0x18
56 
57 #define DRM_IOCTL_NVIDIA_GEM_IMPORT_NVKMS_MEMORY \
58  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GEM_IMPORT_NVKMS_MEMORY), \
59  struct drm_nvidia_gem_import_nvkms_memory_params)
60 
61 #define DRM_IOCTL_NVIDIA_GEM_IMPORT_USERSPACE_MEMORY \
62  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GEM_IMPORT_USERSPACE_MEMORY), \
63  struct drm_nvidia_gem_import_userspace_memory_params)
64 
65 #define DRM_IOCTL_NVIDIA_GET_DEV_INFO \
66  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GET_DEV_INFO), \
67  struct drm_nvidia_get_dev_info_params)
68 
69 /*
70  * XXX Solaris compiler has issues with DRM_IO. None of this is supported on
71  * Solaris anyway, so just skip it.
72  *
73  * 'warning: suggest parentheses around arithmetic in operand of |'
74  */
75 #if defined(NV_LINUX) || defined(NV_BSD)
76 #define DRM_IOCTL_NVIDIA_FENCE_SUPPORTED \
77  DRM_IO(DRM_COMMAND_BASE + DRM_NVIDIA_FENCE_SUPPORTED)
78 #define DRM_IOCTL_NVIDIA_DMABUF_SUPPORTED \
79  DRM_IO(DRM_COMMAND_BASE + DRM_NVIDIA_DMABUF_SUPPORTED)
80 #else
81 #define DRM_IOCTL_NVIDIA_FENCE_SUPPORTED 0
82 #define DRM_IOCTL_NVIDIA_DMABUF_SUPPORTED 0
83 #endif
84 
85 #define DRM_IOCTL_NVIDIA_PRIME_FENCE_CONTEXT_CREATE \
86  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_PRIME_FENCE_CONTEXT_CREATE),\
87  struct drm_nvidia_prime_fence_context_create_params)
88 
89 #define DRM_IOCTL_NVIDIA_GEM_PRIME_FENCE_ATTACH \
90  DRM_IOW((DRM_COMMAND_BASE + DRM_NVIDIA_GEM_PRIME_FENCE_ATTACH), \
91  struct drm_nvidia_gem_prime_fence_attach_params)
92 
93 #define DRM_IOCTL_NVIDIA_GET_CLIENT_CAPABILITY \
94  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GET_CLIENT_CAPABILITY), \
95  struct drm_nvidia_get_client_capability_params)
96 
97 #define DRM_IOCTL_NVIDIA_GET_CRTC_CRC32 \
98  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GET_CRTC_CRC32), \
99  struct drm_nvidia_get_crtc_crc32_params)
100 
101 #define DRM_IOCTL_NVIDIA_GET_CRTC_CRC32_V2 \
102  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GET_CRTC_CRC32_V2), \
103  struct drm_nvidia_get_crtc_crc32_v2_params)
104 
105 #define DRM_IOCTL_NVIDIA_GEM_EXPORT_NVKMS_MEMORY \
106  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GEM_EXPORT_NVKMS_MEMORY), \
107  struct drm_nvidia_gem_export_nvkms_memory_params)
108 
109 #define DRM_IOCTL_NVIDIA_GEM_MAP_OFFSET \
110  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GEM_MAP_OFFSET), \
111  struct drm_nvidia_gem_map_offset_params)
112 
113 #define DRM_IOCTL_NVIDIA_GEM_ALLOC_NVKMS_MEMORY \
114  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GEM_ALLOC_NVKMS_MEMORY), \
115  struct drm_nvidia_gem_alloc_nvkms_memory_params)
116 
117 #define DRM_IOCTL_NVIDIA_GEM_EXPORT_DMABUF_MEMORY \
118  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GEM_EXPORT_DMABUF_MEMORY), \
119  struct drm_nvidia_gem_export_dmabuf_memory_params)
120 
121 #define DRM_IOCTL_NVIDIA_GEM_IDENTIFY_OBJECT \
122  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GEM_IDENTIFY_OBJECT), \
123  struct drm_nvidia_gem_identify_object_params)
124 
125 #define DRM_IOCTL_NVIDIA_GET_DPY_ID_FOR_CONNECTOR_ID \
126  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GET_DPY_ID_FOR_CONNECTOR_ID),\
127  struct drm_nvidia_get_dpy_id_for_connector_id_params)
128 
129 #define DRM_IOCTL_NVIDIA_GET_CONNECTOR_ID_FOR_DPY_ID \
130  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GET_CONNECTOR_ID_FOR_DPY_ID),\
131  struct drm_nvidia_get_connector_id_for_dpy_id_params)
132 
133 #define DRM_IOCTL_NVIDIA_GRANT_PERMISSIONS \
134  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_GRANT_PERMISSIONS), \
135  struct drm_nvidia_grant_permissions_params)
136 
137 #define DRM_IOCTL_NVIDIA_REVOKE_PERMISSIONS \
138  DRM_IOWR((DRM_COMMAND_BASE + DRM_NVIDIA_REVOKE_PERMISSIONS), \
139  struct drm_nvidia_revoke_permissions_params)
140 
141 #define DRM_IOCTL_NVIDIA_SEMSURF_FENCE_CTX_CREATE \
142  DRM_IOWR((DRM_COMMAND_BASE + \
143  DRM_NVIDIA_SEMSURF_FENCE_CTX_CREATE), \
144  struct drm_nvidia_semsurf_fence_ctx_create_params)
145 
146 #define DRM_IOCTL_NVIDIA_SEMSURF_FENCE_CREATE \
147  DRM_IOWR((DRM_COMMAND_BASE + \
148  DRM_NVIDIA_SEMSURF_FENCE_CREATE), \
149  struct drm_nvidia_semsurf_fence_create_params)
150 
151 #define DRM_IOCTL_NVIDIA_SEMSURF_FENCE_WAIT \
152  DRM_IOW((DRM_COMMAND_BASE + \
153  DRM_NVIDIA_SEMSURF_FENCE_WAIT), \
154  struct drm_nvidia_semsurf_fence_wait_params)
155 
156 #define DRM_IOCTL_NVIDIA_SEMSURF_FENCE_ATTACH \
157  DRM_IOW((DRM_COMMAND_BASE + \
158  DRM_NVIDIA_SEMSURF_FENCE_ATTACH), \
159  struct drm_nvidia_semsurf_fence_attach_params)
160 
161 #define DRM_IOCTL_NVIDIA_GET_DRM_FILE_UNIQUE_ID \
162  DRM_IOWR((DRM_COMMAND_BASE + \
163  DRM_NVIDIA_GET_DRM_FILE_UNIQUE_ID), \
164  struct drm_nvidia_get_drm_file_unique_id_params)
165 
167  uint64_t mem_size; /* IN */
168 
169  uint64_t nvkms_params_ptr; /* IN */
170  uint64_t nvkms_params_size; /* IN */
171 
172  uint32_t handle; /* OUT */
173 
174  uint32_t __pad;
175 };
176 
178  uint64_t size; /* IN Size of memory in bytes */
179  uint64_t address; /* IN Virtual address of userspace memory */
180  uint32_t handle; /* OUT Handle to gem object */
181 };
182 
184  uint32_t gpu_id; /* OUT */
185  uint32_t mig_device; /* OUT */
186  uint32_t primary_index; /* OUT; the "card%d" value */
187 
188  uint32_t supports_alloc; /* OUT */
189  /* The generic_page_kind, page_kind_generation, and sector_layout
190  * fields are only valid if supports_alloc is true.
191  * See DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D definitions of these. */
192  uint32_t generic_page_kind; /* OUT */
193  uint32_t page_kind_generation; /* OUT */
194  uint32_t sector_layout; /* OUT */
195  uint32_t supports_sync_fd; /* OUT */
196  uint32_t supports_semsurf; /* OUT */
197 };
198 
200  uint32_t handle; /* OUT GEM handle to fence context */
201 
202  uint32_t index; /* IN Index of semaphore to use for fencing */
203  uint64_t size; /* IN Size of semaphore surface in bytes */
204 
205  /* Params for importing userspace semaphore surface */
206  uint64_t import_mem_nvkms_params_ptr; /* IN */
207  uint64_t import_mem_nvkms_params_size; /* IN */
208 
209  /* Params for creating software signaling event */
210  uint64_t event_nvkms_params_ptr; /* IN */
211  uint64_t event_nvkms_params_size; /* IN */
212 };
213 
215  uint32_t handle; /* IN GEM handle to attach fence to */
216  uint32_t fence_context_handle; /* IN GEM handle to fence context on which fence is run on */
217  uint32_t sem_thresh; /* IN Semaphore value to reach before signal */
218  uint32_t __pad;
219 };
220 
222  uint64_t capability; /* IN Client capability enum */
223  uint64_t value; /* OUT Client capability value */
224 };
225 
226 /* Struct that stores Crc value and if it is supported by hardware */
228  uint32_t value; /* Read value, undefined if supported is false */
229  uint8_t supported; /* Supported boolean, true if readable by hardware */
230  uint8_t __pad0;
231  uint16_t __pad1;
232 };
233 
235  struct drm_nvidia_crtc_crc32 compositorCrc32; /* OUT compositor hardware CRC32 value */
236  struct drm_nvidia_crtc_crc32 rasterGeneratorCrc32; /* OUT raster generator CRC32 value */
237  struct drm_nvidia_crtc_crc32 outputCrc32; /* OUT SF/SOR CRC32 value */
238 };
239 
241  uint32_t crtc_id; /* IN CRTC identifier */
242  struct drm_nvidia_crtc_crc32_v2_out crc32; /* OUT Crc32 output structure */
243 };
244 
246  uint32_t crtc_id; /* IN CRTC identifier */
247  uint32_t crc32; /* OUT CRC32 value */
248 };
249 
251  uint32_t handle; /* IN */
252  uint32_t __pad;
253 
254  uint64_t nvkms_params_ptr; /* IN */
255  uint64_t nvkms_params_size; /* IN */
256 };
257 
259  uint32_t handle; /* IN Handle to gem object */
260  uint32_t __pad;
261 
262  uint64_t offset; /* OUT Fake offset */
263 };
264 
265 #define NV_GEM_ALLOC_NO_SCANOUT (1 << 0)
266 
268  uint32_t handle; /* OUT */
269  uint8_t block_linear; /* IN */
270  uint8_t compressible; /* IN/OUT */
271  uint16_t __pad0;
272 
273  uint64_t memory_size; /* IN */
274  uint32_t flags; /* IN */
275  uint32_t __pad1;
276 };
277 
279  uint32_t handle; /* IN GEM Handle*/
280  uint32_t __pad;
281 
282  uint64_t nvkms_params_ptr; /* IN */
283  uint64_t nvkms_params_size; /* IN */
284 };
285 
286 typedef enum {
290 
291  NV_GEM_OBJECT_UNKNOWN = 0x7fffffff /* Force size of 32-bits. */
293 
295  uint32_t handle; /* IN GEM handle*/
296  drm_nvidia_gem_object_type object_type; /* OUT GEM object type */
297 };
298 
300  uint32_t connectorId; /* IN */
301  uint32_t dpyId; /* OUT */
302 };
303 
305  uint32_t dpyId; /* IN */
306  uint32_t connectorId; /* OUT */
307 };
308 
312 };
313 
315  int32_t fd; /* IN */
316  uint32_t dpyId; /* IN */
317  uint32_t type; /* IN */
318 };
319 
321  uint32_t dpyId; /* IN */
322  uint32_t type; /* IN */
323 };
324 
326  uint64_t index; /* IN Index of the desired semaphore in the
327  * fence context's semaphore surface */
328 
329  /* Params for importing userspace semaphore surface */
330  uint64_t nvkms_params_ptr; /* IN */
331  uint64_t nvkms_params_size; /* IN */
332 
333  uint32_t handle; /* OUT GEM handle to fence context */
334  uint32_t __pad;
335 };
336 
338  uint32_t fence_context_handle; /* IN GEM handle to fence context on which
339  * fence is run on */
340 
341  uint32_t timeout_value_ms; /* IN Timeout value in ms for the fence
342  * after which the fence will be signaled
343  * with its error status set to -ETIMEDOUT.
344  * Default timeout value is 5000ms */
345 
346  uint64_t wait_value; /* IN Semaphore value to reach before signal */
347 
348  int32_t fd; /* OUT sync FD object representing the
349  * semaphore at the specified index reaching
350  * a value >= wait_value */
351  uint32_t __pad;
352 };
353 
354 /*
355  * Note there is no provision for timeouts in this ioctl. The kernel
356  * documentation asserts timeouts should be handled by fence producers, and
357  * that waiters should not second-guess their logic, as it is producers rather
358  * than consumers that have better information when it comes to determining a
359  * reasonable timeout for a given workload.
360  */
362  uint32_t fence_context_handle; /* IN GEM handle to fence context which will
363  * be used to wait on the sync FD. Need not
364  * be the fence context used to create the
365  * sync FD. */
366 
367  int32_t fd; /* IN sync FD object to wait on */
368 
369  uint64_t pre_wait_value; /* IN Wait for the semaphore represented by
370  * fence_context to reach this value before
371  * waiting for the sync file. */
372 
373  uint64_t post_wait_value; /* IN Signal the semaphore represented by
374  * fence_context to this value after waiting
375  * for the sync file */
376 };
377 
379  uint32_t handle; /* IN GEM handle of buffer */
380 
381  uint32_t fence_context_handle; /* IN GEM handle of fence context */
382 
383  uint32_t timeout_value_ms; /* IN Timeout value in ms for the fence
384  * after which the fence will be signaled
385  * with its error status set to -ETIMEDOUT.
386  * Default timeout value is 5000ms */
387 
388  uint32_t shared; /* IN If true, fence will reserve shared
389  * access to the buffer, otherwise it will
390  * reserve exclusive access */
391 
392  uint64_t wait_value; /* IN Semaphore value to reach before signal */
393 };
394 
396  uint64_t id; /* OUT Unique ID of the DRM file */
397 };
398 
399 #endif /* _UAPI_NVIDIA_DRM_IOCTL_H_ */
drm_nvidia_gem_alloc_nvkms_memory_params::__pad0
uint16_t __pad0
Definition: nvidia-drm-ioctl.h:271
drm_nvidia_semsurf_fence_ctx_create_params::index
uint64_t index
Definition: nvidia-drm-ioctl.h:326
drm_nvidia_semsurf_fence_ctx_create_params::__pad
uint32_t __pad
Definition: nvidia-drm-ioctl.h:334
drm_nvidia_get_dev_info_params::supports_semsurf
uint32_t supports_semsurf
Definition: nvidia-drm-ioctl.h:196
drm_nvidia_gem_prime_fence_attach_params::fence_context_handle
uint32_t fence_context_handle
Definition: nvidia-drm-ioctl.h:216
drm_nvidia_prime_fence_context_create_params::import_mem_nvkms_params_ptr
uint64_t import_mem_nvkms_params_ptr
Definition: nvidia-drm-ioctl.h:206
drm_nvidia_gem_export_dmabuf_memory_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:279
drm_nvidia_permissions_type
drm_nvidia_permissions_type
Definition: nvidia-drm-ioctl.h:309
drm_nvidia_get_crtc_crc32_params::crc32
uint32_t crc32
Definition: nvidia-drm-ioctl.h:247
drm_nvidia_gem_import_nvkms_memory_params::mem_size
uint64_t mem_size
Definition: nvidia-drm-ioctl.h:167
drm_nvidia_get_dev_info_params::page_kind_generation
uint32_t page_kind_generation
Definition: nvidia-drm-ioctl.h:193
drm_nvidia_gem_import_nvkms_memory_params::__pad
uint32_t __pad
Definition: nvidia-drm-ioctl.h:174
drm_nvidia_semsurf_fence_create_params::__pad
uint32_t __pad
Definition: nvidia-drm-ioctl.h:351
drm_nvidia_gem_identify_object_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:295
drm_nvidia_crtc_crc32::supported
uint8_t supported
Definition: nvidia-drm-ioctl.h:229
drm_nvidia_crtc_crc32::__pad0
uint8_t __pad0
Definition: nvidia-drm-ioctl.h:230
drm_nvidia_gem_alloc_nvkms_memory_params::block_linear
uint8_t block_linear
Definition: nvidia-drm-ioctl.h:269
drm_nvidia_semsurf_fence_attach_params::wait_value
uint64_t wait_value
Definition: nvidia-drm-ioctl.h:392
drm_nvidia_get_dev_info_params::mig_device
uint32_t mig_device
Definition: nvidia-drm-ioctl.h:185
drm_nvidia_get_dpy_id_for_connector_id_params::dpyId
uint32_t dpyId
Definition: nvidia-drm-ioctl.h:301
drm_nvidia_gem_export_dmabuf_memory_params::nvkms_params_size
uint64_t nvkms_params_size
Definition: nvidia-drm-ioctl.h:283
drm_nvidia_get_dpy_id_for_connector_id_params
Definition: nvidia-drm-ioctl.h:299
drm_nvidia_crtc_crc32_v2_out::rasterGeneratorCrc32
struct drm_nvidia_crtc_crc32 rasterGeneratorCrc32
Definition: nvidia-drm-ioctl.h:236
drm_nvidia_get_client_capability_params::value
uint64_t value
Definition: nvidia-drm-ioctl.h:223
drm_nvidia_get_crtc_crc32_params::crtc_id
uint32_t crtc_id
Definition: nvidia-drm-ioctl.h:246
drm_nvidia_get_connector_id_for_dpy_id_params::connectorId
uint32_t connectorId
Definition: nvidia-drm-ioctl.h:306
drm_nvidia_gem_import_userspace_memory_params::size
uint64_t size
Definition: nvidia-drm-ioctl.h:178
drm_nvidia_prime_fence_context_create_params::size
uint64_t size
Definition: nvidia-drm-ioctl.h:203
NV_DRM_PERMISSIONS_TYPE_SUB_OWNER
@ NV_DRM_PERMISSIONS_TYPE_SUB_OWNER
Definition: nvidia-drm-ioctl.h:311
drm_nvidia_get_crtc_crc32_v2_params
Definition: nvidia-drm-ioctl.h:240
NV_GEM_OBJECT_NVKMS
@ NV_GEM_OBJECT_NVKMS
Definition: nvidia-drm-ioctl.h:287
drm_nvidia_grant_permissions_params::dpyId
uint32_t dpyId
Definition: nvidia-drm-ioctl.h:316
drm_nvidia_gem_export_nvkms_memory_params
Definition: nvidia-drm-ioctl.h:250
drm_nvidia_get_crtc_crc32_v2_params::crc32
struct drm_nvidia_crtc_crc32_v2_out crc32
Definition: nvidia-drm-ioctl.h:242
drm_nvidia_gem_map_offset_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:259
drm_nvidia_get_dev_info_params::sector_layout
uint32_t sector_layout
Definition: nvidia-drm-ioctl.h:194
drm_nvidia_crtc_crc32::value
uint32_t value
Definition: nvidia-drm-ioctl.h:228
drm_nvidia_crtc_crc32_v2_out::compositorCrc32
struct drm_nvidia_crtc_crc32 compositorCrc32
Definition: nvidia-drm-ioctl.h:235
drm_nvidia_gem_export_nvkms_memory_params::nvkms_params_size
uint64_t nvkms_params_size
Definition: nvidia-drm-ioctl.h:255
drm_nvidia_semsurf_fence_wait_params
Definition: nvidia-drm-ioctl.h:361
drm_nvidia_gem_alloc_nvkms_memory_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:268
drm_nvidia_gem_import_userspace_memory_params::address
uint64_t address
Definition: nvidia-drm-ioctl.h:179
drm_nvidia_gem_import_nvkms_memory_params::nvkms_params_ptr
uint64_t nvkms_params_ptr
Definition: nvidia-drm-ioctl.h:169
drm_nvidia_prime_fence_context_create_params::event_nvkms_params_size
uint64_t event_nvkms_params_size
Definition: nvidia-drm-ioctl.h:211
drm_nvidia_grant_permissions_params::type
uint32_t type
Definition: nvidia-drm-ioctl.h:317
drm_nvidia_semsurf_fence_ctx_create_params
Definition: nvidia-drm-ioctl.h:325
drm_nvidia_gem_object_type
drm_nvidia_gem_object_type
Definition: nvidia-drm-ioctl.h:286
drm_nvidia_gem_export_dmabuf_memory_params
Definition: nvidia-drm-ioctl.h:278
drm_nvidia_gem_import_nvkms_memory_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:172
drm_nvidia_get_dev_info_params::primary_index
uint32_t primary_index
Definition: nvidia-drm-ioctl.h:186
drm_nvidia_crtc_crc32_v2_out
Definition: nvidia-drm-ioctl.h:234
drm_nvidia_semsurf_fence_attach_params
Definition: nvidia-drm-ioctl.h:378
drm_nvidia_prime_fence_context_create_params
Definition: nvidia-drm-ioctl.h:199
drm_nvidia_get_dev_info_params::supports_alloc
uint32_t supports_alloc
Definition: nvidia-drm-ioctl.h:188
drm_nvidia_semsurf_fence_create_params::wait_value
uint64_t wait_value
Definition: nvidia-drm-ioctl.h:346
drm_nvidia_prime_fence_context_create_params::event_nvkms_params_ptr
uint64_t event_nvkms_params_ptr
Definition: nvidia-drm-ioctl.h:210
NV_GEM_OBJECT_DMABUF
@ NV_GEM_OBJECT_DMABUF
Definition: nvidia-drm-ioctl.h:288
drm_nvidia_get_dev_info_params
Definition: nvidia-drm-ioctl.h:183
drm_nvidia_get_drm_file_unique_id_params::id
uint64_t id
Definition: nvidia-drm-ioctl.h:396
drm_nvidia_gem_alloc_nvkms_memory_params::compressible
uint8_t compressible
Definition: nvidia-drm-ioctl.h:270
drm_nvidia_gem_map_offset_params::__pad
uint32_t __pad
Definition: nvidia-drm-ioctl.h:260
drm_nvidia_semsurf_fence_ctx_create_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:333
drm_nvidia_get_crtc_crc32_v2_params::crtc_id
uint32_t crtc_id
Definition: nvidia-drm-ioctl.h:241
drm_nvidia_gem_identify_object_params::object_type
drm_nvidia_gem_object_type object_type
Definition: nvidia-drm-ioctl.h:296
NV_DRM_PERMISSIONS_TYPE_MODESET
@ NV_DRM_PERMISSIONS_TYPE_MODESET
Definition: nvidia-drm-ioctl.h:310
drm_nvidia_gem_import_nvkms_memory_params::nvkms_params_size
uint64_t nvkms_params_size
Definition: nvidia-drm-ioctl.h:170
drm_nvidia_semsurf_fence_create_params::fd
int32_t fd
Definition: nvidia-drm-ioctl.h:348
drm_nvidia_gem_prime_fence_attach_params::__pad
uint32_t __pad
Definition: nvidia-drm-ioctl.h:218
drm_nvidia_gem_identify_object_params
Definition: nvidia-drm-ioctl.h:294
drm_nvidia_semsurf_fence_wait_params::fd
int32_t fd
Definition: nvidia-drm-ioctl.h:367
drm_nvidia_gem_export_dmabuf_memory_params::__pad
uint32_t __pad
Definition: nvidia-drm-ioctl.h:280
drm_nvidia_gem_import_userspace_memory_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:180
drm_nvidia_grant_permissions_params::fd
int32_t fd
Definition: nvidia-drm-ioctl.h:315
drm_nvidia_semsurf_fence_attach_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:379
drm_nvidia_get_connector_id_for_dpy_id_params
Definition: nvidia-drm-ioctl.h:304
drm_nvidia_semsurf_fence_attach_params::fence_context_handle
uint32_t fence_context_handle
Definition: nvidia-drm-ioctl.h:381
drm_nvidia_get_connector_id_for_dpy_id_params::dpyId
uint32_t dpyId
Definition: nvidia-drm-ioctl.h:305
drm_nvidia_gem_export_nvkms_memory_params::__pad
uint32_t __pad
Definition: nvidia-drm-ioctl.h:252
drm_nvidia_gem_prime_fence_attach_params::sem_thresh
uint32_t sem_thresh
Definition: nvidia-drm-ioctl.h:217
drm_nvidia_semsurf_fence_wait_params::fence_context_handle
uint32_t fence_context_handle
Definition: nvidia-drm-ioctl.h:362
drm_nvidia_gem_export_dmabuf_memory_params::nvkms_params_ptr
uint64_t nvkms_params_ptr
Definition: nvidia-drm-ioctl.h:282
drm_nvidia_prime_fence_context_create_params::import_mem_nvkms_params_size
uint64_t import_mem_nvkms_params_size
Definition: nvidia-drm-ioctl.h:207
drm_nvidia_revoke_permissions_params::type
uint32_t type
Definition: nvidia-drm-ioctl.h:322
drm_nvidia_semsurf_fence_attach_params::shared
uint32_t shared
Definition: nvidia-drm-ioctl.h:388
drm_nvidia_semsurf_fence_create_params
Definition: nvidia-drm-ioctl.h:337
drm_nvidia_crtc_crc32_v2_out::outputCrc32
struct drm_nvidia_crtc_crc32 outputCrc32
Definition: nvidia-drm-ioctl.h:237
drm_nvidia_revoke_permissions_params::dpyId
uint32_t dpyId
Definition: nvidia-drm-ioctl.h:321
drm_nvidia_get_dev_info_params::supports_sync_fd
uint32_t supports_sync_fd
Definition: nvidia-drm-ioctl.h:195
drm_nvidia_semsurf_fence_ctx_create_params::nvkms_params_ptr
uint64_t nvkms_params_ptr
Definition: nvidia-drm-ioctl.h:330
drm_nvidia_grant_permissions_params
Definition: nvidia-drm-ioctl.h:314
drm_nvidia_gem_alloc_nvkms_memory_params::flags
uint32_t flags
Definition: nvidia-drm-ioctl.h:274
drm_nvidia_gem_prime_fence_attach_params
Definition: nvidia-drm-ioctl.h:214
drm_nvidia_gem_import_userspace_memory_params
Definition: nvidia-drm-ioctl.h:177
NV_GEM_OBJECT_USERMEMORY
@ NV_GEM_OBJECT_USERMEMORY
Definition: nvidia-drm-ioctl.h:289
drm_nvidia_gem_export_nvkms_memory_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:251
drm_nvidia_semsurf_fence_wait_params::post_wait_value
uint64_t post_wait_value
Definition: nvidia-drm-ioctl.h:373
NV_GEM_OBJECT_UNKNOWN
@ NV_GEM_OBJECT_UNKNOWN
Definition: nvidia-drm-ioctl.h:291
drm_nvidia_get_dev_info_params::gpu_id
uint32_t gpu_id
Definition: nvidia-drm-ioctl.h:184
drm_nvidia_gem_import_nvkms_memory_params
Definition: nvidia-drm-ioctl.h:166
drm_nvidia_revoke_permissions_params
Definition: nvidia-drm-ioctl.h:320
drm_nvidia_semsurf_fence_wait_params::pre_wait_value
uint64_t pre_wait_value
Definition: nvidia-drm-ioctl.h:369
drm_nvidia_gem_alloc_nvkms_memory_params::memory_size
uint64_t memory_size
Definition: nvidia-drm-ioctl.h:273
drm_nvidia_get_crtc_crc32_params
Definition: nvidia-drm-ioctl.h:245
drm_nvidia_get_drm_file_unique_id_params
Definition: nvidia-drm-ioctl.h:395
drm_nvidia_gem_map_offset_params
Definition: nvidia-drm-ioctl.h:258
drm_nvidia_get_client_capability_params
Definition: nvidia-drm-ioctl.h:221
drm_nvidia_gem_prime_fence_attach_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:215
drm_nvidia_gem_map_offset_params::offset
uint64_t offset
Definition: nvidia-drm-ioctl.h:262
drm_nvidia_prime_fence_context_create_params::index
uint32_t index
Definition: nvidia-drm-ioctl.h:202
drm_nvidia_crtc_crc32
Definition: nvidia-drm-ioctl.h:227
drm_nvidia_get_client_capability_params::capability
uint64_t capability
Definition: nvidia-drm-ioctl.h:222
drm_nvidia_gem_alloc_nvkms_memory_params
Definition: nvidia-drm-ioctl.h:267
drm_nvidia_semsurf_fence_create_params::timeout_value_ms
uint32_t timeout_value_ms
Definition: nvidia-drm-ioctl.h:341
drm_nvidia_prime_fence_context_create_params::handle
uint32_t handle
Definition: nvidia-drm-ioctl.h:200
drm_nvidia_gem_export_nvkms_memory_params::nvkms_params_ptr
uint64_t nvkms_params_ptr
Definition: nvidia-drm-ioctl.h:254
drm_nvidia_get_dev_info_params::generic_page_kind
uint32_t generic_page_kind
Definition: nvidia-drm-ioctl.h:192
drm_nvidia_gem_alloc_nvkms_memory_params::__pad1
uint32_t __pad1
Definition: nvidia-drm-ioctl.h:275
drm_nvidia_semsurf_fence_create_params::fence_context_handle
uint32_t fence_context_handle
Definition: nvidia-drm-ioctl.h:338
drm_nvidia_semsurf_fence_attach_params::timeout_value_ms
uint32_t timeout_value_ms
Definition: nvidia-drm-ioctl.h:383
drm_nvidia_semsurf_fence_ctx_create_params::nvkms_params_size
uint64_t nvkms_params_size
Definition: nvidia-drm-ioctl.h:331
drm_nvidia_get_dpy_id_for_connector_id_params::connectorId
uint32_t connectorId
Definition: nvidia-drm-ioctl.h:300
drm_nvidia_crtc_crc32::__pad1
uint16_t __pad1
Definition: nvidia-drm-ioctl.h:231