10 #include <drm/exynos_drm.h>
12 #include <drm/i810_drm.h>
13 #include <drm/i915_drm.h>
14 #include <drm/mga_drm.h>
15 #include <drm/nouveau_drm.h>
16 #include <drm/r128_drm.h>
17 #include <drm/radeon_drm.h>
18 #include <drm/savage_drm.h>
23 /* Copy-paste relevant stuff from header, as it is buggy. */
24 /* #include <drm/sis_drm.h> */
26 /* SiS specific ioctls */
28 #define DRM_SIS_FB_ALLOC 0x04
29 #define DRM_SIS_FB_FREE 0x05
31 #define DRM_SIS_AGP_INIT 0x13
32 #define DRM_SIS_AGP_ALLOC 0x14
33 #define DRM_SIS_AGP_FREE 0x15
34 #define DRM_SIS_FB_INIT 0x16
36 #define DRM_IOCTL_SIS_FB_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_FB_ALLOC, drm_sis_mem_t)
37 #define DRM_IOCTL_SIS_FB_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_FB_FREE, drm_sis_mem_t)
38 #define DRM_IOCTL_SIS_AGP_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_INIT, drm_sis_agp_t)
39 #define DRM_IOCTL_SIS_AGP_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_SIS_AGP_ALLOC, drm_sis_mem_t)
40 #define DRM_IOCTL_SIS_AGP_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_AGP_FREE, drm_sis_mem_t)
41 #define DRM_IOCTL_SIS_FB_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_SIS_FB_INIT, drm_sis_fb_t)
43 #define DRM_IOCTL_SIS_FLIP DRM_IOW( 0x48, drm_sis_flip_t)
44 #define DRM_IOCTL_SIS_FLIP_INIT DRM_IO( 0x49)
45 #define DRM_IOCTL_SIS_FLIP_FINAL DRM_IO( 0x50)
48 /* deprecated nouveau ioctls */
50 * Copyright 2005 Stephane Marchesin.
51 * All Rights Reserved.
53 * Permission is hereby granted, free of charge, to any person obtaining a
54 * copy of this software and associated documentation files (the "Software"),
55 * to deal in the Software without restriction, including without limitation
56 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
57 * and/or sell copies of the Software, and to permit persons to whom the
58 * Software is furnished to do so, subject to the following conditions:
60 * The above copyright notice and this permission notice (including the next
61 * paragraph) shall be included in all copies or substantial portions of the
64 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
65 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
66 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
67 * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
68 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
69 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
70 * OTHER DEALINGS IN THE SOFTWARE.
72 #ifndef DRM_IOCTL_NOUVEAU_GETPARAM
73 struct drm_nouveau_getparam
{
77 #define DRM_IOCTL_NOUVEAU_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GETPARAM, struct drm_nouveau_getparam)
80 #ifndef DRM_IOCTL_NOUVEAU_SETPARAM
81 struct drm_nouveau_setparam
{
85 #define DRM_IOCTL_NOUVEAU_SETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_SETPARAM, struct drm_nouveau_setparam)
88 #ifndef DRM_IOCTL_NOUVEAU_CHANNEL_ALLOC
89 struct drm_nouveau_channel_alloc
{
90 uint32_t fb_ctxdma_handle
;
91 uint32_t tt_ctxdma_handle
;
94 uint32_t pushbuf_domains
;
97 uint32_t notifier_handle
;
99 /* DRM-enforced subchannel assignments */
106 #define DRM_IOCTL_NOUVEAU_CHANNEL_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_ALLOC, struct drm_nouveau_channel_alloc)
109 #ifndef DRM_IOCTL_NOUVEAU_CHANNEL_FREE
110 struct drm_nouveau_channel_free
{
113 #define DRM_IOCTL_NOUVEAU_CHANNEL_FREE DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_FREE, struct drm_nouveau_channel_free)
116 #ifndef DRM_IOCTL_NOUVEAU_GROBJ_ALLOC
117 struct drm_nouveau_grobj_alloc
{
122 #define DRM_IOCTL_NOUVEAU_GROBJ_ALLOC DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GROBJ_ALLOC, struct drm_nouveau_grobj_alloc)
125 #ifndef DRM_IOCTL_NOUVEAU_NOTIFIEROBJ_ALLOC
126 struct drm_nouveau_notifierobj_alloc
{
132 #define DRM_IOCTL_NOUVEAU_NOTIFIEROBJ_ALLOC DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_NOTIFIEROBJ_ALLOC, struct drm_nouveau_notifierobj_alloc)
135 #ifndef DRM_IOCTL_NOUVEAU_GPUOBJ_FREE
136 struct drm_nouveau_gpuobj_free
{
140 #define DRM_IOCTL_NOUVEAU_GPUOBJ_FREE DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GPUOBJ_FREE, struct drm_nouveau_gpuobj_free)
145 unsigned long offset
;
151 unsigned long offset
, size
;
155 unsigned long offset
, size
;
158 /* header is buggy. */
159 /* #include <drm/via_drm.h> */
161 static const struct ioctl drm_ioctls
[] = {
163 IOCTL(DRM_IOCTL_VERSION
),
164 IOCTL(DRM_IOCTL_GET_UNIQUE
),
165 IOCTL(DRM_IOCTL_GET_MAGIC
),
166 IOCTL(DRM_IOCTL_IRQ_BUSID
),
167 IOCTL(DRM_IOCTL_GET_MAP
),
168 IOCTL(DRM_IOCTL_GET_CLIENT
),
169 IOCTL(DRM_IOCTL_GET_STATS
),
170 IOCTL(DRM_IOCTL_SET_VERSION
),
171 IOCTL(DRM_IOCTL_MODESET_CTL
),
172 IOCTL(DRM_IOCTL_GEM_CLOSE
),
173 IOCTL(DRM_IOCTL_GEM_FLINK
),
174 IOCTL(DRM_IOCTL_GEM_OPEN
),
175 #ifdef DRM_IOCTL_GET_CAP
176 IOCTL(DRM_IOCTL_GET_CAP
),
178 IOCTL(DRM_IOCTL_SET_UNIQUE
),
179 IOCTL(DRM_IOCTL_AUTH_MAGIC
),
180 IOCTL(DRM_IOCTL_BLOCK
),
181 IOCTL(DRM_IOCTL_UNBLOCK
),
182 IOCTL(DRM_IOCTL_CONTROL
),
183 IOCTL(DRM_IOCTL_ADD_MAP
),
184 IOCTL(DRM_IOCTL_ADD_BUFS
),
185 IOCTL(DRM_IOCTL_MARK_BUFS
),
186 IOCTL(DRM_IOCTL_INFO_BUFS
),
187 IOCTL(DRM_IOCTL_MAP_BUFS
),
188 IOCTL(DRM_IOCTL_FREE_BUFS
),
189 IOCTL(DRM_IOCTL_RM_MAP
),
190 IOCTL(DRM_IOCTL_SET_SAREA_CTX
),
191 IOCTL(DRM_IOCTL_GET_SAREA_CTX
),
192 IOCTL(DRM_IOCTL_SET_MASTER
),
193 IOCTL(DRM_IOCTL_DROP_MASTER
),
194 IOCTL(DRM_IOCTL_ADD_CTX
),
195 IOCTL(DRM_IOCTL_RM_CTX
),
196 IOCTL(DRM_IOCTL_MOD_CTX
),
197 IOCTL(DRM_IOCTL_GET_CTX
),
198 IOCTL(DRM_IOCTL_SWITCH_CTX
),
199 IOCTL(DRM_IOCTL_NEW_CTX
),
200 IOCTL(DRM_IOCTL_RES_CTX
),
201 IOCTL(DRM_IOCTL_ADD_DRAW
),
202 IOCTL(DRM_IOCTL_RM_DRAW
),
203 IOCTL(DRM_IOCTL_DMA
),
204 IOCTL(DRM_IOCTL_LOCK
),
205 IOCTL(DRM_IOCTL_UNLOCK
),
206 IOCTL(DRM_IOCTL_FINISH
),
207 #ifdef DRM_IOCTL_PRIME_HANDLE_TO_FD
208 IOCTL(DRM_IOCTL_PRIME_HANDLE_TO_FD
),
210 #ifdef DRM_IOCTL_PRIME_FD_TO_HANDLE
211 IOCTL(DRM_IOCTL_PRIME_FD_TO_HANDLE
),
213 IOCTL(DRM_IOCTL_AGP_ACQUIRE
),
214 IOCTL(DRM_IOCTL_AGP_RELEASE
),
215 IOCTL(DRM_IOCTL_AGP_ENABLE
),
216 IOCTL(DRM_IOCTL_AGP_INFO
),
217 IOCTL(DRM_IOCTL_AGP_ALLOC
),
218 IOCTL(DRM_IOCTL_AGP_FREE
),
219 IOCTL(DRM_IOCTL_AGP_BIND
),
220 IOCTL(DRM_IOCTL_AGP_UNBIND
),
221 IOCTL(DRM_IOCTL_SG_ALLOC
),
222 IOCTL(DRM_IOCTL_SG_FREE
),
223 IOCTL(DRM_IOCTL_WAIT_VBLANK
),
224 IOCTL(DRM_IOCTL_UPDATE_DRAW
),
225 IOCTL(DRM_IOCTL_MODE_GETRESOURCES
),
226 IOCTL(DRM_IOCTL_MODE_GETCRTC
),
227 IOCTL(DRM_IOCTL_MODE_SETCRTC
),
228 IOCTL(DRM_IOCTL_MODE_CURSOR
),
229 IOCTL(DRM_IOCTL_MODE_GETGAMMA
),
230 IOCTL(DRM_IOCTL_MODE_SETGAMMA
),
231 IOCTL(DRM_IOCTL_MODE_GETENCODER
),
232 IOCTL(DRM_IOCTL_MODE_GETCONNECTOR
),
233 IOCTL(DRM_IOCTL_MODE_ATTACHMODE
),
234 IOCTL(DRM_IOCTL_MODE_DETACHMODE
),
235 IOCTL(DRM_IOCTL_MODE_GETPROPERTY
),
236 IOCTL(DRM_IOCTL_MODE_SETPROPERTY
),
237 IOCTL(DRM_IOCTL_MODE_GETPROPBLOB
),
238 IOCTL(DRM_IOCTL_MODE_GETFB
),
239 IOCTL(DRM_IOCTL_MODE_ADDFB
),
240 IOCTL(DRM_IOCTL_MODE_RMFB
),
241 IOCTL(DRM_IOCTL_MODE_PAGE_FLIP
),
242 IOCTL(DRM_IOCTL_MODE_DIRTYFB
),
243 #ifdef DRM_IOCTL_MODE_CREATE_DUMB
244 IOCTL(DRM_IOCTL_MODE_CREATE_DUMB
),
246 #ifdef DRM_IOCTL_MODE_MAP_DUMB
247 IOCTL(DRM_IOCTL_MODE_MAP_DUMB
),
249 #ifdef DRM_IOCTL_MODE_DESTROY_DUMB
250 IOCTL(DRM_IOCTL_MODE_DESTROY_DUMB
),
252 #ifdef DRM_IOCTL_MODE_GETPLANERESOURCES
253 IOCTL(DRM_IOCTL_MODE_GETPLANERESOURCES
),
255 #ifdef DRM_IOCTL_MODE_GETPLANE
256 IOCTL(DRM_IOCTL_MODE_GETPLANE
),
258 #ifdef DRM_IOCTL_MODE_SETPLANE
259 IOCTL(DRM_IOCTL_MODE_SETPLANE
),
261 #ifdef DRM_IOCTL_MODE_ADDFB2
262 IOCTL(DRM_IOCTL_MODE_ADDFB2
),
264 #ifdef DRM_IOCTL_MODE_OBJ_GETPROPERTIES
265 IOCTL(DRM_IOCTL_MODE_OBJ_GETPROPERTIES
),
267 #ifdef DRM_IOCTL_MODE_OBJ_SETPROPERTY
268 IOCTL(DRM_IOCTL_MODE_OBJ_SETPROPERTY
),
271 #ifdef USE_DRM_EXYNOS
273 IOCTL(DRM_IOCTL_EXYNOS_GEM_CREATE
),
274 IOCTL(DRM_IOCTL_EXYNOS_GEM_MAP_OFFSET
),
275 IOCTL(DRM_IOCTL_EXYNOS_GEM_MMAP
),
276 #ifdef DRM_IOCTL_EXYNOS_GEM_GET
277 IOCTL(DRM_IOCTL_EXYNOS_GEM_GET
),
279 IOCTL(DRM_IOCTL_EXYNOS_VIDI_CONNECTION
),
280 #ifdef DRM_IOCTL_EXYNOS_G2D_GET_VER
281 IOCTL(DRM_IOCTL_EXYNOS_G2D_GET_VER
),
283 #ifdef DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST
284 IOCTL(DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST
),
286 #ifdef DRM_IOCTL_EXYNOS_G2D_EXEC
287 IOCTL(DRM_IOCTL_EXYNOS_G2D_EXEC
),
292 IOCTL(DRM_IOCTL_I810_INIT
),
293 IOCTL(DRM_IOCTL_I810_VERTEX
),
294 IOCTL(DRM_IOCTL_I810_CLEAR
),
295 IOCTL(DRM_IOCTL_I810_FLUSH
),
296 IOCTL(DRM_IOCTL_I810_GETAGE
),
297 IOCTL(DRM_IOCTL_I810_GETBUF
),
298 IOCTL(DRM_IOCTL_I810_SWAP
),
299 IOCTL(DRM_IOCTL_I810_COPY
),
300 IOCTL(DRM_IOCTL_I810_DOCOPY
),
301 IOCTL(DRM_IOCTL_I810_OV0INFO
),
302 IOCTL(DRM_IOCTL_I810_FSTATUS
),
303 IOCTL(DRM_IOCTL_I810_OV0FLIP
),
304 IOCTL(DRM_IOCTL_I810_MC
),
305 IOCTL(DRM_IOCTL_I810_RSTATUS
),
306 IOCTL(DRM_IOCTL_I810_FLIP
),
309 IOCTL(DRM_IOCTL_I915_INIT
),
310 IOCTL(DRM_IOCTL_I915_FLUSH
),
311 IOCTL(DRM_IOCTL_I915_FLIP
),
312 IOCTL(DRM_IOCTL_I915_BATCHBUFFER
),
313 IOCTL(DRM_IOCTL_I915_IRQ_EMIT
),
314 IOCTL(DRM_IOCTL_I915_IRQ_WAIT
),
315 IOCTL(DRM_IOCTL_I915_GETPARAM
),
316 IOCTL(DRM_IOCTL_I915_SETPARAM
),
317 IOCTL(DRM_IOCTL_I915_ALLOC
),
318 IOCTL(DRM_IOCTL_I915_FREE
),
319 IOCTL(DRM_IOCTL_I915_INIT_HEAP
),
320 IOCTL(DRM_IOCTL_I915_CMDBUFFER
),
321 IOCTL(DRM_IOCTL_I915_DESTROY_HEAP
),
322 IOCTL(DRM_IOCTL_I915_SET_VBLANK_PIPE
),
323 IOCTL(DRM_IOCTL_I915_GET_VBLANK_PIPE
),
324 IOCTL(DRM_IOCTL_I915_VBLANK_SWAP
),
325 #ifdef DRM_IOCTL_I915_HWS_ADDR
326 IOCTL(DRM_IOCTL_I915_HWS_ADDR
),
328 IOCTL(DRM_IOCTL_I915_GEM_INIT
),
329 IOCTL(DRM_IOCTL_I915_GEM_EXECBUFFER
),
330 IOCTL(DRM_IOCTL_I915_GEM_EXECBUFFER2
),
331 IOCTL(DRM_IOCTL_I915_GEM_PIN
),
332 IOCTL(DRM_IOCTL_I915_GEM_UNPIN
),
333 IOCTL(DRM_IOCTL_I915_GEM_BUSY
),
334 #ifdef DRM_IOCTL_I915_GEM_SET_CACHING
335 IOCTL(DRM_IOCTL_I915_GEM_SET_CACHING
),
337 #ifdef DRM_IOCTL_I915_GEM_GET_CACHING
338 IOCTL(DRM_IOCTL_I915_GEM_GET_CACHING
),
340 IOCTL(DRM_IOCTL_I915_GEM_THROTTLE
),
341 IOCTL(DRM_IOCTL_I915_GEM_ENTERVT
),
342 IOCTL(DRM_IOCTL_I915_GEM_LEAVEVT
),
343 IOCTL(DRM_IOCTL_I915_GEM_CREATE
),
344 IOCTL(DRM_IOCTL_I915_GEM_PREAD
),
345 IOCTL(DRM_IOCTL_I915_GEM_PWRITE
),
346 IOCTL(DRM_IOCTL_I915_GEM_MMAP
),
347 IOCTL(DRM_IOCTL_I915_GEM_MMAP_GTT
),
348 IOCTL(DRM_IOCTL_I915_GEM_SET_DOMAIN
),
349 IOCTL(DRM_IOCTL_I915_GEM_SW_FINISH
),
350 IOCTL(DRM_IOCTL_I915_GEM_SET_TILING
),
351 IOCTL(DRM_IOCTL_I915_GEM_GET_TILING
),
352 IOCTL(DRM_IOCTL_I915_GEM_GET_APERTURE
),
353 IOCTL(DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID
),
354 IOCTL(DRM_IOCTL_I915_GEM_MADVISE
),
355 IOCTL(DRM_IOCTL_I915_OVERLAY_PUT_IMAGE
),
356 IOCTL(DRM_IOCTL_I915_OVERLAY_ATTRS
),
357 #ifdef DRM_IOCTL_I915_SET_SPRITE_COLORKEY
358 IOCTL(DRM_IOCTL_I915_SET_SPRITE_COLORKEY
),
360 #ifdef DRM_IOCTL_I915_GET_SPRITE_COLORKEY
361 IOCTL(DRM_IOCTL_I915_GET_SPRITE_COLORKEY
),
363 #ifdef DRM_IOCTL_I915_GEM_WAIT
364 IOCTL(DRM_IOCTL_I915_GEM_WAIT
),
366 #ifdef DRM_IOCTL_I915_GEM_CONTEXT_CREATE
367 IOCTL(DRM_IOCTL_I915_GEM_CONTEXT_CREATE
),
369 #ifdef DRM_IOCTL_I915_GEM_CONTEXT_DESTROY
370 IOCTL(DRM_IOCTL_I915_GEM_CONTEXT_DESTROY
),
372 #ifdef DRM_IOCTL_I915_REG_READ
373 IOCTL(DRM_IOCTL_I915_REG_READ
),
377 IOCTL(DRM_IOCTL_MGA_INIT
),
378 IOCTL(DRM_IOCTL_MGA_FLUSH
),
379 IOCTL(DRM_IOCTL_MGA_RESET
),
380 IOCTL(DRM_IOCTL_MGA_SWAP
),
381 IOCTL(DRM_IOCTL_MGA_CLEAR
),
382 IOCTL(DRM_IOCTL_MGA_VERTEX
),
383 IOCTL(DRM_IOCTL_MGA_INDICES
),
384 IOCTL(DRM_IOCTL_MGA_ILOAD
),
385 IOCTL(DRM_IOCTL_MGA_BLIT
),
386 IOCTL(DRM_IOCTL_MGA_GETPARAM
),
387 IOCTL(DRM_IOCTL_MGA_SET_FENCE
),
388 IOCTL(DRM_IOCTL_MGA_WAIT_FENCE
),
389 IOCTL(DRM_IOCTL_MGA_DMA_BOOTSTRAP
),
392 IOCTL(DRM_IOCTL_NOUVEAU_GETPARAM
),
393 IOCTL(DRM_IOCTL_NOUVEAU_SETPARAM
),
394 IOCTL(DRM_IOCTL_NOUVEAU_CHANNEL_ALLOC
),
395 IOCTL(DRM_IOCTL_NOUVEAU_CHANNEL_FREE
),
396 IOCTL(DRM_IOCTL_NOUVEAU_GROBJ_ALLOC
),
397 IOCTL(DRM_IOCTL_NOUVEAU_NOTIFIEROBJ_ALLOC
),
398 IOCTL(DRM_IOCTL_NOUVEAU_GPUOBJ_FREE
),
399 #ifdef DRM_IOCTL_NOUVEAU_GEM_NEW
400 IOCTL(DRM_IOCTL_NOUVEAU_GEM_NEW
),
402 #ifdef DRM_IOCTL_NOUVEAU_GEM_PUSHBUF
403 IOCTL(DRM_IOCTL_NOUVEAU_GEM_PUSHBUF
),
405 #ifdef DRM_IOCTL_NOUVEAU_GEM_CPU_PREP
406 IOCTL(DRM_IOCTL_NOUVEAU_GEM_CPU_PREP
),
408 #ifdef DRM_IOCTL_NOUVEAU_GEM_CPU_FINI
409 IOCTL(DRM_IOCTL_NOUVEAU_GEM_CPU_FINI
),
411 #ifdef DRM_IOCTL_NOUVEAU_GEM_INFO
412 IOCTL(DRM_IOCTL_NOUVEAU_GEM_INFO
),
416 IOCTL(DRM_IOCTL_R128_INIT
),
417 IOCTL(DRM_IOCTL_R128_CCE_START
),
418 IOCTL(DRM_IOCTL_R128_CCE_STOP
),
419 IOCTL(DRM_IOCTL_R128_CCE_RESET
),
420 IOCTL(DRM_IOCTL_R128_CCE_IDLE
),
421 IOCTL(DRM_IOCTL_R128_RESET
),
422 IOCTL(DRM_IOCTL_R128_SWAP
),
423 IOCTL(DRM_IOCTL_R128_CLEAR
),
424 IOCTL(DRM_IOCTL_R128_VERTEX
),
425 IOCTL(DRM_IOCTL_R128_INDICES
),
426 IOCTL(DRM_IOCTL_R128_BLIT
),
427 IOCTL(DRM_IOCTL_R128_DEPTH
),
428 IOCTL(DRM_IOCTL_R128_STIPPLE
),
429 IOCTL(DRM_IOCTL_R128_INDIRECT
),
430 IOCTL(DRM_IOCTL_R128_FULLSCREEN
),
431 IOCTL(DRM_IOCTL_R128_GETPARAM
),
432 IOCTL(DRM_IOCTL_R128_FLIP
),
435 IOCTL(DRM_IOCTL_RADEON_CP_INIT
),
436 IOCTL(DRM_IOCTL_RADEON_CP_START
),
437 IOCTL(DRM_IOCTL_RADEON_CP_STOP
),
438 IOCTL(DRM_IOCTL_RADEON_CP_RESET
),
439 IOCTL(DRM_IOCTL_RADEON_CP_IDLE
),
440 IOCTL(DRM_IOCTL_RADEON_RESET
),
441 IOCTL(DRM_IOCTL_RADEON_FULLSCREEN
),
442 IOCTL(DRM_IOCTL_RADEON_SWAP
),
443 IOCTL(DRM_IOCTL_RADEON_CLEAR
),
444 IOCTL(DRM_IOCTL_RADEON_VERTEX
),
445 IOCTL(DRM_IOCTL_RADEON_INDICES
),
446 IOCTL(DRM_IOCTL_RADEON_STIPPLE
),
447 IOCTL(DRM_IOCTL_RADEON_INDIRECT
),
448 IOCTL(DRM_IOCTL_RADEON_TEXTURE
),
449 IOCTL(DRM_IOCTL_RADEON_VERTEX2
),
450 IOCTL(DRM_IOCTL_RADEON_CMDBUF
),
451 IOCTL(DRM_IOCTL_RADEON_GETPARAM
),
452 IOCTL(DRM_IOCTL_RADEON_FLIP
),
453 IOCTL(DRM_IOCTL_RADEON_ALLOC
),
454 IOCTL(DRM_IOCTL_RADEON_FREE
),
455 IOCTL(DRM_IOCTL_RADEON_INIT_HEAP
),
456 IOCTL(DRM_IOCTL_RADEON_IRQ_EMIT
),
457 IOCTL(DRM_IOCTL_RADEON_IRQ_WAIT
),
458 IOCTL(DRM_IOCTL_RADEON_CP_RESUME
),
459 IOCTL(DRM_IOCTL_RADEON_SETPARAM
),
460 IOCTL(DRM_IOCTL_RADEON_SURF_ALLOC
),
461 IOCTL(DRM_IOCTL_RADEON_SURF_FREE
),
462 IOCTL(DRM_IOCTL_RADEON_GEM_INFO
),
463 IOCTL(DRM_IOCTL_RADEON_GEM_CREATE
),
464 IOCTL(DRM_IOCTL_RADEON_GEM_MMAP
),
465 IOCTL(DRM_IOCTL_RADEON_GEM_PREAD
),
466 IOCTL(DRM_IOCTL_RADEON_GEM_PWRITE
),
467 IOCTL(DRM_IOCTL_RADEON_GEM_SET_DOMAIN
),
468 IOCTL(DRM_IOCTL_RADEON_GEM_WAIT_IDLE
),
469 IOCTL(DRM_IOCTL_RADEON_CS
),
470 IOCTL(DRM_IOCTL_RADEON_INFO
),
471 #ifdef DRM_IOCTL_RADEON_GEM_SET_TILING
472 IOCTL(DRM_IOCTL_RADEON_GEM_SET_TILING
),
474 #ifdef DRM_IOCTL_RADEON_GEM_GET_TILING
475 IOCTL(DRM_IOCTL_RADEON_GEM_GET_TILING
),
477 IOCTL(DRM_IOCTL_RADEON_GEM_BUSY
),
478 #ifdef DRM_IOCTL_RADEON_GEM_VA
479 IOCTL(DRM_IOCTL_RADEON_GEM_VA
),
483 #ifdef DRM_IOCTL_SAVAGE_BCI_INIT
484 IOCTL(DRM_IOCTL_SAVAGE_BCI_INIT
),
486 #ifdef DRM_IOCTL_SAVAGE_BCI_CMDBUF
487 IOCTL(DRM_IOCTL_SAVAGE_BCI_CMDBUF
),
489 #ifdef DRM_IOCTL_SAVAGE_BCI_EVENT_EMIT
490 IOCTL(DRM_IOCTL_SAVAGE_BCI_EVENT_EMIT
),
492 #ifdef DRM_IOCTL_SAVAGE_BCI_EVENT_WAIT
493 IOCTL(DRM_IOCTL_SAVAGE_BCI_EVENT_WAIT
),
497 IOCTL(DRM_IOCTL_SIS_FB_ALLOC
),
498 IOCTL(DRM_IOCTL_SIS_FB_FREE
),
499 IOCTL(DRM_IOCTL_SIS_AGP_INIT
),
500 IOCTL(DRM_IOCTL_SIS_AGP_ALLOC
),
501 IOCTL(DRM_IOCTL_SIS_AGP_FREE
),
502 IOCTL(DRM_IOCTL_SIS_FB_INIT
),
506 IOCTL(DRM_IOCTL_VIA_ALLOCMEM),
507 IOCTL(DRM_IOCTL_VIA_FREEMEM),
508 IOCTL(DRM_IOCTL_VIA_AGP_INIT),
509 IOCTL(DRM_IOCTL_VIA_FB_INIT),
510 IOCTL(DRM_IOCTL_VIA_MAP_INIT),
511 IOCTL(DRM_IOCTL_VIA_DEC_FUTEX),
512 IOCTL(DRM_IOCTL_VIA_DMA_INIT),
513 IOCTL(DRM_IOCTL_VIA_CMDBUFFER),
514 IOCTL(DRM_IOCTL_VIA_FLUSH),
515 IOCTL(DRM_IOCTL_VIA_PCICMD),
516 IOCTL(DRM_IOCTL_VIA_CMDBUF_SIZE),
517 IOCTL(DRM_IOCTL_VIA_WAIT_IRQ),
518 IOCTL(DRM_IOCTL_VIA_DMA_BLIT),
519 IOCTL(DRM_IOCTL_VIA_BLIT_SYNC),
523 static const char *const drm_devs
[] = {
527 static const struct ioctl_group drm_grp
= {
530 .devs_cnt
= ARRAY_SIZE(drm_devs
),
531 .sanitise
= pick_random_ioctl
,
532 .ioctls
= drm_ioctls
,
533 .ioctls_cnt
= ARRAY_SIZE(drm_ioctls
),
536 REG_IOCTL_GROUP(drm_grp
)