Blame view

include/drm/drm.h 20.7 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
  /**
b5e89ed53   Dave Airlie   drm: lindent the ...
2
   * \file drm.h
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
3
   * Header for the Direct Rendering Manager
b5e89ed53   Dave Airlie   drm: lindent the ...
4
   *
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
   * \author Rickard E. (Rik) Faith <faith@valinux.com>
   *
   * \par Acknowledgments:
   * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic \c cmpxchg.
   */
  
  /*
   * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
   * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
   * All rights reserved.
   *
   * Permission is hereby granted, free of charge, to any person obtaining a
   * copy of this software and associated documentation files (the "Software"),
   * to deal in the Software without restriction, including without limitation
   * the rights to use, copy, modify, merge, publish, distribute, sublicense,
   * and/or sell copies of the Software, and to permit persons to whom the
   * Software is furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice (including the next
   * paragraph) shall be included in all copies or substantial portions of the
   * Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
   * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
   * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
   * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
   * OTHER DEALINGS IN THE SOFTWARE.
   */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
35
36
37
38
  #ifndef _DRM_H_
  #define _DRM_H_
  
  #if defined(__linux__)
850eb83a6   Dave Airlie   drm: wrap config....
39
  #if defined(__KERNEL__)
850eb83a6   Dave Airlie   drm: wrap config....
40
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  #include <asm/ioctl.h>		/* For _IO* macros */
  #define DRM_IOCTL_NR(n)		_IOC_NR(n)
  #define DRM_IOC_VOID		_IOC_NONE
  #define DRM_IOC_READ		_IOC_READ
  #define DRM_IOC_WRITE		_IOC_WRITE
  #define DRM_IOC_READWRITE	_IOC_READ|_IOC_WRITE
  #define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
  #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
  #if defined(__FreeBSD__) && defined(IN_MODULE)
  /* Prevent name collision when including sys/ioccom.h */
  #undef ioctl
  #include <sys/ioccom.h>
  #define ioctl(a,b,c)		xf86ioctl(a,b,c)
  #else
  #include <sys/ioccom.h>
b5e89ed53   Dave Airlie   drm: lindent the ...
56
  #endif				/* __FreeBSD__ && xf86ioctl */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
57
58
59
60
61
62
63
  #define DRM_IOCTL_NR(n)		((n) & 0xff)
  #define DRM_IOC_VOID		IOC_VOID
  #define DRM_IOC_READ		IOC_OUT
  #define DRM_IOC_WRITE		IOC_IN
  #define DRM_IOC_READWRITE	IOC_INOUT
  #define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
64
65
  #define DRM_MAJOR       226
  #define DRM_MAX_MINOR   15
b589ee594   Dave Airlie   drm: remove XFREE...
66

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
67
68
69
70
  #define DRM_NAME	"drm"	  /**< Name in kernel, /dev, and /proc */
  #define DRM_MIN_ORDER	5	  /**< At least 2^5 bytes = 32 bytes */
  #define DRM_MAX_ORDER	22	  /**< Up to 2^22 bytes = 4MB */
  #define DRM_RAM_PERCENT 10	  /**< How much system ram can we lock? */
b3a80a223   Dave Airlie   drm: update lock ...
71
72
  #define _DRM_LOCK_HELD	0x80000000U /**< Hardware lock is held */
  #define _DRM_LOCK_CONT	0x40000000U /**< Hardware lock is contended */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
73
74
75
  #define _DRM_LOCK_IS_HELD(lock)	   ((lock) & _DRM_LOCK_HELD)
  #define _DRM_LOCK_IS_CONT(lock)	   ((lock) & _DRM_LOCK_CONT)
  #define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT))
b5e89ed53   Dave Airlie   drm: lindent the ...
76
77
78
79
  typedef unsigned int drm_handle_t;
  typedef unsigned int drm_context_t;
  typedef unsigned int drm_drawable_t;
  typedef unsigned int drm_magic_t;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
80
81
82
  
  /**
   * Cliprect.
b5e89ed53   Dave Airlie   drm: lindent the ...
83
   *
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
84
85
86
87
88
89
90
   * \warning: If you change this structure, make sure you change
   * XF86DRIClipRectRec in the server as well
   *
   * 
  ote KW: Actually it's illegal to change either for
   * backwards-compatibility reasons.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
91
  struct drm_clip_rect {
b5e89ed53   Dave Airlie   drm: lindent the ...
92
93
94
95
  	unsigned short x1;
  	unsigned short y1;
  	unsigned short x2;
  	unsigned short y2;
c60ce623b   Dave Airlie   drm: remove a bun...
96
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
97

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
98
  /**
bea5679f9   Michel Dänzer   drm: Add support ...
99
100
   * Drawable information.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
101
  struct drm_drawable_info {
bea5679f9   Michel Dänzer   drm: Add support ...
102
  	unsigned int num_rects;
c60ce623b   Dave Airlie   drm: remove a bun...
103
104
  	struct drm_clip_rect *rects;
  };
bea5679f9   Michel Dänzer   drm: Add support ...
105
106
  
  /**
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
107
108
   * Texture region,
   */
c60ce623b   Dave Airlie   drm: remove a bun...
109
  struct drm_tex_region {
b5e89ed53   Dave Airlie   drm: lindent the ...
110
111
112
113
114
  	unsigned char next;
  	unsigned char prev;
  	unsigned char in_use;
  	unsigned char padding;
  	unsigned int age;
c60ce623b   Dave Airlie   drm: remove a bun...
115
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
116
117
118
119
120
121
122
123
  
  /**
   * Hardware lock.
   *
   * The lock structure is a simple cache-line aligned integer.  To avoid
   * processor bus contention on a multiprocessor system, there should not be any
   * other data stored in the same cache line.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
124
  struct drm_hw_lock {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
125
  	__volatile__ unsigned int lock;		/**< lock variable */
b5e89ed53   Dave Airlie   drm: lindent the ...
126
  	char padding[60];			/**< Pad to cache line */
c60ce623b   Dave Airlie   drm: remove a bun...
127
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
128

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
129
130
  /**
   * DRM_IOCTL_VERSION ioctl argument type.
b5e89ed53   Dave Airlie   drm: lindent the ...
131
   *
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
132
133
   * \sa drmGetVersion().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
134
  struct drm_version {
b5e89ed53   Dave Airlie   drm: lindent the ...
135
136
137
  	int version_major;	  /**< Major version */
  	int version_minor;	  /**< Minor version */
  	int version_patchlevel;	  /**< Patch level */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
138
  	size_t name_len;	  /**< Length of name buffer */
b5e89ed53   Dave Airlie   drm: lindent the ...
139
  	char __user *name;	  /**< Name of driver */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
140
  	size_t date_len;	  /**< Length of date buffer */
b5e89ed53   Dave Airlie   drm: lindent the ...
141
  	char __user *date;	  /**< User-space buffer to hold date */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
142
  	size_t desc_len;	  /**< Length of desc buffer */
b5e89ed53   Dave Airlie   drm: lindent the ...
143
  	char __user *desc;	  /**< User-space buffer to hold desc */
c60ce623b   Dave Airlie   drm: remove a bun...
144
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
145

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
146
147
148
149
150
  /**
   * DRM_IOCTL_GET_UNIQUE ioctl argument type.
   *
   * \sa drmGetBusid() and drmSetBusId().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
151
  struct drm_unique {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
152
  	size_t unique_len;	  /**< Length of unique */
b5e89ed53   Dave Airlie   drm: lindent the ...
153
  	char __user *unique;	  /**< Unique name for driver instantiation */
c60ce623b   Dave Airlie   drm: remove a bun...
154
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
155

c60ce623b   Dave Airlie   drm: remove a bun...
156
  struct drm_list {
b5e89ed53   Dave Airlie   drm: lindent the ...
157
  	int count;		  /**< Length of user-space structures */
c60ce623b   Dave Airlie   drm: remove a bun...
158
159
  	struct drm_version __user *version;
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
160

c60ce623b   Dave Airlie   drm: remove a bun...
161
  struct drm_block {
b5e89ed53   Dave Airlie   drm: lindent the ...
162
  	int unused;
c60ce623b   Dave Airlie   drm: remove a bun...
163
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
164

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
165
166
167
168
169
  /**
   * DRM_IOCTL_CONTROL ioctl argument type.
   *
   * \sa drmCtlInstHandler() and drmCtlUninstHandler().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
170
  struct drm_control {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
171
172
173
174
175
  	enum {
  		DRM_ADD_COMMAND,
  		DRM_RM_COMMAND,
  		DRM_INST_HANDLER,
  		DRM_UNINST_HANDLER
b5e89ed53   Dave Airlie   drm: lindent the ...
176
177
  	} func;
  	int irq;
c60ce623b   Dave Airlie   drm: remove a bun...
178
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
179

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
180
181
182
  /**
   * Type of memory to map.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
183
  enum drm_map_type {
b5e89ed53   Dave Airlie   drm: lindent the ...
184
185
186
187
  	_DRM_FRAME_BUFFER = 0,	  /**< WC (no caching), no core dump */
  	_DRM_REGISTERS = 1,	  /**< no caching, no core dump */
  	_DRM_SHM = 2,		  /**< shared, cached */
  	_DRM_AGP = 3,		  /**< AGP/GART */
2d0f9eaff   Dave Airlie   drm: add _DRM_CON...
188
  	_DRM_SCATTER_GATHER = 4,  /**< Scatter/gather memory for PCI DMA */
b5e89ed53   Dave Airlie   drm: lindent the ...
189
  	_DRM_CONSISTENT = 5,	  /**< Consistent memory for PCI DMA */
c60ce623b   Dave Airlie   drm: remove a bun...
190
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
191

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
192
193
194
  /**
   * Memory mapping flags.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
195
  enum drm_map_flags {
b5e89ed53   Dave Airlie   drm: lindent the ...
196
197
198
199
  	_DRM_RESTRICTED = 0x01,	     /**< Cannot be mapped to user-virtual */
  	_DRM_READ_ONLY = 0x02,
  	_DRM_LOCKED = 0x04,	     /**< shared, cached, locked */
  	_DRM_KERNEL = 0x08,	     /**< kernel requires access */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
200
  	_DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */
b5e89ed53   Dave Airlie   drm: lindent the ...
201
  	_DRM_CONTAINS_LOCK = 0x20,   /**< SHM page that contains lock */
e3236a117   Dave Airlie   drm: add _DRM_DRI...
202
203
  	_DRM_REMOVABLE = 0x40,	     /**< Removable mapping */
  	_DRM_DRIVER = 0x80	     /**< Managed by driver */
c60ce623b   Dave Airlie   drm: remove a bun...
204
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
205

c60ce623b   Dave Airlie   drm: remove a bun...
206
  struct drm_ctx_priv_map {
b5e89ed53   Dave Airlie   drm: lindent the ...
207
208
  	unsigned int ctx_id;	 /**< Context requesting private mapping */
  	void *handle;		 /**< Handle of map */
c60ce623b   Dave Airlie   drm: remove a bun...
209
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
210

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
211
212
213
214
215
216
  /**
   * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls
   * argument type.
   *
   * \sa drmAddMap().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
217
  struct drm_map {
b5e89ed53   Dave Airlie   drm: lindent the ...
218
219
  	unsigned long offset;	 /**< Requested physical address (0 for SAREA)*/
  	unsigned long size;	 /**< Requested physical size (bytes) */
c60ce623b   Dave Airlie   drm: remove a bun...
220
221
  	enum drm_map_type type;	 /**< Type of memory to map */
  	enum drm_map_flags flags;	 /**< Flags */
b5e89ed53   Dave Airlie   drm: lindent the ...
222
  	void *handle;		 /**< User-space: "Handle" to pass to mmap() */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
223
  				 /**< Kernel-space: kernel-virtual address */
b5e89ed53   Dave Airlie   drm: lindent the ...
224
225
  	int mtrr;		 /**< MTRR slot used */
  	/*   Private data */
c60ce623b   Dave Airlie   drm: remove a bun...
226
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
227

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
228
229
230
  /**
   * DRM_IOCTL_GET_CLIENT ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
231
  struct drm_client {
b5e89ed53   Dave Airlie   drm: lindent the ...
232
233
234
235
236
237
  	int idx;		/**< Which client desired? */
  	int auth;		/**< Is client authenticated? */
  	unsigned long pid;	/**< Process ID */
  	unsigned long uid;	/**< User ID */
  	unsigned long magic;	/**< Magic */
  	unsigned long iocs;	/**< Ioctl count */
c60ce623b   Dave Airlie   drm: remove a bun...
238
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
239

c60ce623b   Dave Airlie   drm: remove a bun...
240
  enum drm_stat_type {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
  	_DRM_STAT_LOCK,
  	_DRM_STAT_OPENS,
  	_DRM_STAT_CLOSES,
  	_DRM_STAT_IOCTLS,
  	_DRM_STAT_LOCKS,
  	_DRM_STAT_UNLOCKS,
  	_DRM_STAT_VALUE,	/**< Generic value */
  	_DRM_STAT_BYTE,		/**< Generic byte counter (1024bytes/K) */
  	_DRM_STAT_COUNT,	/**< Generic non-byte counter (1000/k) */
  
  	_DRM_STAT_IRQ,		/**< IRQ */
  	_DRM_STAT_PRIMARY,	/**< Primary DMA bytes */
  	_DRM_STAT_SECONDARY,	/**< Secondary DMA bytes */
  	_DRM_STAT_DMA,		/**< DMA */
  	_DRM_STAT_SPECIAL,	/**< Special DMA (e.g., priority or polled) */
  	_DRM_STAT_MISSED	/**< Missed DMA opportunity */
b5e89ed53   Dave Airlie   drm: lindent the ...
257
  	    /* Add to the *END* of the list */
c60ce623b   Dave Airlie   drm: remove a bun...
258
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
259

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
260
261
262
  /**
   * DRM_IOCTL_GET_STATS ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
263
  struct drm_stats {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
264
265
  	unsigned long count;
  	struct {
b5e89ed53   Dave Airlie   drm: lindent the ...
266
  		unsigned long value;
c60ce623b   Dave Airlie   drm: remove a bun...
267
  		enum drm_stat_type type;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
268
  	} data[15];
c60ce623b   Dave Airlie   drm: remove a bun...
269
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
270

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
271
272
273
  /**
   * Hardware locking flags.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
274
  enum drm_lock_flags {
b5e89ed53   Dave Airlie   drm: lindent the ...
275
276
277
278
279
280
281
  	_DRM_LOCK_READY = 0x01,	     /**< Wait until hardware is ready for DMA */
  	_DRM_LOCK_QUIESCENT = 0x02,  /**< Wait until hardware quiescent */
  	_DRM_LOCK_FLUSH = 0x04,	     /**< Flush this context's DMA queue first */
  	_DRM_LOCK_FLUSH_ALL = 0x08,  /**< Flush all DMA queues first */
  	/* These *HALT* flags aren't supported yet
  	   -- they will be used to support the
  	   full-screen DGA-like mode. */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
282
283
  	_DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */
  	_DRM_HALT_CUR_QUEUES = 0x20  /**< Halt all current queues */
c60ce623b   Dave Airlie   drm: remove a bun...
284
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
285

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
286
287
  /**
   * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type.
b5e89ed53   Dave Airlie   drm: lindent the ...
288
   *
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
289
290
   * \sa drmGetLock() and drmUnlock().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
291
  struct drm_lock {
b5e89ed53   Dave Airlie   drm: lindent the ...
292
  	int context;
c60ce623b   Dave Airlie   drm: remove a bun...
293
294
  	enum drm_lock_flags flags;
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
295

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
296
297
298
  /**
   * DMA flags
   *
b5e89ed53   Dave Airlie   drm: lindent the ...
299
   * \warning
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
300
301
302
303
   * These values \e must match xf86drm.h.
   *
   * \sa drm_dma.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
304
  enum drm_dma_flags {
b5e89ed53   Dave Airlie   drm: lindent the ...
305
306
  	/* Flags for DMA buffer dispatch */
  	_DRM_DMA_BLOCK = 0x01,	      /**<
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
307
  				       * Block until buffer dispatched.
b5e89ed53   Dave Airlie   drm: lindent the ...
308
  				       *
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
309
310
311
312
313
314
315
316
317
  				       * 
  ote The buffer may not yet have
  				       * been processed by the hardware --
  				       * getting a hardware lock with the
  				       * hardware quiescent will ensure
  				       * that the buffer has been
  				       * processed.
  				       */
  	_DRM_DMA_WHILE_LOCKED = 0x02, /**< Dispatch while lock held */
b5e89ed53   Dave Airlie   drm: lindent the ...
318
  	_DRM_DMA_PRIORITY = 0x04,     /**< High priority dispatch */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
319

b5e89ed53   Dave Airlie   drm: lindent the ...
320
321
322
323
  	/* Flags for DMA buffer request */
  	_DRM_DMA_WAIT = 0x10,	      /**< Wait for free buffers */
  	_DRM_DMA_SMALLER_OK = 0x20,   /**< Smaller-than-requested buffers OK */
  	_DRM_DMA_LARGER_OK = 0x40     /**< Larger-than-requested buffers OK */
c60ce623b   Dave Airlie   drm: remove a bun...
324
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
325

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
326
327
328
329
330
  /**
   * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.
   *
   * \sa drmAddBufs().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
331
  struct drm_buf_desc {
b5e89ed53   Dave Airlie   drm: lindent the ...
332
333
334
335
  	int count;		 /**< Number of buffers of this size */
  	int size;		 /**< Size in bytes */
  	int low_mark;		 /**< Low water mark */
  	int high_mark;		 /**< High water mark */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
336
  	enum {
b5e89ed53   Dave Airlie   drm: lindent the ...
337
338
339
  		_DRM_PAGE_ALIGN = 0x01,	/**< Align on page boundaries for DMA */
  		_DRM_AGP_BUFFER = 0x02,	/**< Buffer is in AGP space */
  		_DRM_SG_BUFFER = 0x04,	/**< Scatter/gather memory buffer */
3417f33e7   George Sapountzis   drm: add flag for...
340
341
  		_DRM_FB_BUFFER = 0x08,	/**< Buffer is in frame buffer */
  		_DRM_PCI_BUFFER_RO = 0x10 /**< Map PCI DMA buffer read-only */
b5e89ed53   Dave Airlie   drm: lindent the ...
342
343
  	} flags;
  	unsigned long agp_start; /**<
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
344
345
346
  				  * Start address of where the AGP buffers are
  				  * in the AGP aperture
  				  */
c60ce623b   Dave Airlie   drm: remove a bun...
347
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
348

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
349
350
351
  /**
   * DRM_IOCTL_INFO_BUFS ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
352
  struct drm_buf_info {
b5e89ed53   Dave Airlie   drm: lindent the ...
353
  	int count;		/**< Entries in list */
c60ce623b   Dave Airlie   drm: remove a bun...
354
355
  	struct drm_buf_desc __user *list;
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
356

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
357
358
359
  /**
   * DRM_IOCTL_FREE_BUFS ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
360
  struct drm_buf_free {
b5e89ed53   Dave Airlie   drm: lindent the ...
361
362
  	int count;
  	int __user *list;
c60ce623b   Dave Airlie   drm: remove a bun...
363
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
364

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
365
366
367
368
369
  /**
   * Buffer information
   *
   * \sa drm_buf_map.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
370
  struct drm_buf_pub {
b5e89ed53   Dave Airlie   drm: lindent the ...
371
372
373
374
  	int idx;		       /**< Index into the master buffer list */
  	int total;		       /**< Buffer size */
  	int used;		       /**< Amount of buffer in use (for DMA) */
  	void __user *address;	       /**< Address of buffer */
c60ce623b   Dave Airlie   drm: remove a bun...
375
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
376

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
377
378
379
  /**
   * DRM_IOCTL_MAP_BUFS ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
380
  struct drm_buf_map {
b5e89ed53   Dave Airlie   drm: lindent the ...
381
382
  	int count;		/**< Length of the buffer list */
  	void __user *virtual;		/**< Mmap'd area in user-virtual */
c60ce623b   Dave Airlie   drm: remove a bun...
383
384
  	struct drm_buf_pub __user *list;	/**< Buffer information */
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
385

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
386
387
388
389
390
391
392
  /**
   * DRM_IOCTL_DMA ioctl argument type.
   *
   * Indices here refer to the offset into the buffer list in drm_buf_get.
   *
   * \sa drmDMA().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
393
  struct drm_dma {
b5e89ed53   Dave Airlie   drm: lindent the ...
394
395
396
397
  	int context;			  /**< Context handle */
  	int send_count;			  /**< Number of buffers to send */
  	int __user *send_indices;	  /**< List of handles to buffers */
  	int __user *send_sizes;		  /**< Lengths of data to send */
c60ce623b   Dave Airlie   drm: remove a bun...
398
  	enum drm_dma_flags flags;	  /**< Flags */
b5e89ed53   Dave Airlie   drm: lindent the ...
399
400
401
402
403
  	int request_count;		  /**< Number of buffers requested */
  	int request_size;		  /**< Desired size for buffers */
  	int __user *request_indices;	  /**< Buffer information */
  	int __user *request_sizes;
  	int granted_count;		  /**< Number of buffers granted */
c60ce623b   Dave Airlie   drm: remove a bun...
404
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
405

c60ce623b   Dave Airlie   drm: remove a bun...
406
  enum drm_ctx_flags {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
407
  	_DRM_CONTEXT_PRESERVED = 0x01,
b5e89ed53   Dave Airlie   drm: lindent the ...
408
  	_DRM_CONTEXT_2DONLY = 0x02
c60ce623b   Dave Airlie   drm: remove a bun...
409
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
410

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
411
412
413
414
415
  /**
   * DRM_IOCTL_ADD_CTX ioctl argument type.
   *
   * \sa drmCreateContext() and drmDestroyContext().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
416
  struct drm_ctx {
b5e89ed53   Dave Airlie   drm: lindent the ...
417
  	drm_context_t handle;
c60ce623b   Dave Airlie   drm: remove a bun...
418
419
  	enum drm_ctx_flags flags;
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
420

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
421
422
423
  /**
   * DRM_IOCTL_RES_CTX ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
424
  struct drm_ctx_res {
b5e89ed53   Dave Airlie   drm: lindent the ...
425
  	int count;
c60ce623b   Dave Airlie   drm: remove a bun...
426
427
  	struct drm_ctx __user *contexts;
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
428

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
429
430
431
  /**
   * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
432
  struct drm_draw {
b5e89ed53   Dave Airlie   drm: lindent the ...
433
  	drm_drawable_t handle;
c60ce623b   Dave Airlie   drm: remove a bun...
434
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
435

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
436
  /**
bea5679f9   Michel Dänzer   drm: Add support ...
437
438
439
440
441
   * DRM_IOCTL_UPDATE_DRAW ioctl argument type.
   */
  typedef enum {
  	DRM_DRAWABLE_CLIPRECTS,
  } drm_drawable_info_type_t;
c60ce623b   Dave Airlie   drm: remove a bun...
442
  struct drm_update_draw {
bea5679f9   Michel Dänzer   drm: Add support ...
443
444
445
446
  	drm_drawable_t handle;
  	unsigned int type;
  	unsigned int num;
  	unsigned long long data;
c60ce623b   Dave Airlie   drm: remove a bun...
447
  };
bea5679f9   Michel Dänzer   drm: Add support ...
448
449
  
  /**
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
450
451
   * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
452
  struct drm_auth {
b5e89ed53   Dave Airlie   drm: lindent the ...
453
  	drm_magic_t magic;
c60ce623b   Dave Airlie   drm: remove a bun...
454
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
455

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
456
457
458
459
460
  /**
   * DRM_IOCTL_IRQ_BUSID ioctl argument type.
   *
   * \sa drmGetInterruptFromBusID().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
461
  struct drm_irq_busid {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
462
463
464
465
  	int irq;	/**< IRQ number */
  	int busnum;	/**< bus number */
  	int devnum;	/**< device number */
  	int funcnum;	/**< function number */
c60ce623b   Dave Airlie   drm: remove a bun...
466
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
467

c60ce623b   Dave Airlie   drm: remove a bun...
468
  enum drm_vblank_seq_type {
b5e89ed53   Dave Airlie   drm: lindent the ...
469
470
  	_DRM_VBLANK_ABSOLUTE = 0x0,	/**< Wait for specific vblank sequence number */
  	_DRM_VBLANK_RELATIVE = 0x1,	/**< Wait for given number of vblanks */
ab285d74e   Michel Dänzer   drm: Core vsync: ...
471
  	_DRM_VBLANK_NEXTONMISS = 0x10000000,	/**< If missed, wait for next vblank */
776c9443e   Michel Dänzer   drm: add support ...
472
  	_DRM_VBLANK_SECONDARY = 0x20000000,	/**< Secondary display controller */
b5e89ed53   Dave Airlie   drm: lindent the ...
473
  	_DRM_VBLANK_SIGNAL = 0x40000000	/**< Send signal instead of blocking */
c60ce623b   Dave Airlie   drm: remove a bun...
474
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
475

776c9443e   Michel Dänzer   drm: add support ...
476
  #define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE)
ab285d74e   Michel Dänzer   drm: Core vsync: ...
477
478
  #define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_SIGNAL | _DRM_VBLANK_SECONDARY | \
  				_DRM_VBLANK_NEXTONMISS)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
479

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
480
  struct drm_wait_vblank_request {
c60ce623b   Dave Airlie   drm: remove a bun...
481
  	enum drm_vblank_seq_type type;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
482
483
484
  	unsigned int sequence;
  	unsigned long signal;
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
485
  struct drm_wait_vblank_reply {
c60ce623b   Dave Airlie   drm: remove a bun...
486
  	enum drm_vblank_seq_type type;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
487
488
489
490
  	unsigned int sequence;
  	long tval_sec;
  	long tval_usec;
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
491
492
493
494
495
  /**
   * DRM_IOCTL_WAIT_VBLANK ioctl argument type.
   *
   * \sa drmWaitVBlank().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
496
  union drm_wait_vblank {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
497
498
  	struct drm_wait_vblank_request request;
  	struct drm_wait_vblank_reply reply;
c60ce623b   Dave Airlie   drm: remove a bun...
499
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
500

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
501
502
503
504
505
  /**
   * DRM_IOCTL_AGP_ENABLE ioctl argument type.
   *
   * \sa drmAgpEnable().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
506
  struct drm_agp_mode {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
507
  	unsigned long mode;	/**< AGP mode */
c60ce623b   Dave Airlie   drm: remove a bun...
508
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
509

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
510
511
512
513
514
  /**
   * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type.
   *
   * \sa drmAgpAlloc() and drmAgpFree().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
515
  struct drm_agp_buffer {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
516
517
  	unsigned long size;	/**< In bytes -- will round to page boundary */
  	unsigned long handle;	/**< Used for binding / unbinding */
b5e89ed53   Dave Airlie   drm: lindent the ...
518
519
  	unsigned long type;	/**< Type of memory to allocate */
  	unsigned long physical;	/**< Physical used by i810 */
c60ce623b   Dave Airlie   drm: remove a bun...
520
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
521

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
522
523
524
525
526
  /**
   * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type.
   *
   * \sa drmAgpBind() and drmAgpUnbind().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
527
  struct drm_agp_binding {
b5e89ed53   Dave Airlie   drm: lindent the ...
528
  	unsigned long handle;	/**< From drm_agp_buffer */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
529
  	unsigned long offset;	/**< In bytes -- will round to page boundary */
c60ce623b   Dave Airlie   drm: remove a bun...
530
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
531

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
532
533
534
535
536
537
538
  /**
   * DRM_IOCTL_AGP_INFO ioctl argument type.
   *
   * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(),
   * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(),
   * drmAgpVendorId() and drmAgpDeviceId().
   */
c60ce623b   Dave Airlie   drm: remove a bun...
539
  struct drm_agp_info {
b5e89ed53   Dave Airlie   drm: lindent the ...
540
541
542
543
544
545
546
547
548
  	int agp_version_major;
  	int agp_version_minor;
  	unsigned long mode;
  	unsigned long aperture_base;	/* physical address */
  	unsigned long aperture_size;	/* bytes */
  	unsigned long memory_allowed;	/* bytes */
  	unsigned long memory_used;
  
  	/* PCI information */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
549
550
  	unsigned short id_vendor;
  	unsigned short id_device;
c60ce623b   Dave Airlie   drm: remove a bun...
551
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
552

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
553
554
555
  /**
   * DRM_IOCTL_SG_ALLOC ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
556
  struct drm_scatter_gather {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
557
558
  	unsigned long size;	/**< In bytes -- will round to page boundary */
  	unsigned long handle;	/**< Used for mapping / unmapping */
c60ce623b   Dave Airlie   drm: remove a bun...
559
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
560
561
562
563
  
  /**
   * DRM_IOCTL_SET_VERSION ioctl argument type.
   */
c60ce623b   Dave Airlie   drm: remove a bun...
564
  struct drm_set_version {
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
565
566
567
568
  	int drm_di_major;
  	int drm_di_minor;
  	int drm_dd_major;
  	int drm_dd_minor;
c60ce623b   Dave Airlie   drm: remove a bun...
569
  };
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
570

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
571
572
573
574
575
  #define DRM_IOCTL_BASE			'd'
  #define DRM_IO(nr)			_IO(DRM_IOCTL_BASE,nr)
  #define DRM_IOR(nr,type)		_IOR(DRM_IOCTL_BASE,nr,type)
  #define DRM_IOW(nr,type)		_IOW(DRM_IOCTL_BASE,nr,type)
  #define DRM_IOWR(nr,type)		_IOWR(DRM_IOCTL_BASE,nr,type)
c60ce623b   Dave Airlie   drm: remove a bun...
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
  #define DRM_IOCTL_VERSION		DRM_IOWR(0x00, struct drm_version)
  #define DRM_IOCTL_GET_UNIQUE		DRM_IOWR(0x01, struct drm_unique)
  #define DRM_IOCTL_GET_MAGIC		DRM_IOR( 0x02, struct drm_auth)
  #define DRM_IOCTL_IRQ_BUSID		DRM_IOWR(0x03, struct drm_irq_busid)
  #define DRM_IOCTL_GET_MAP               DRM_IOWR(0x04, struct drm_map)
  #define DRM_IOCTL_GET_CLIENT            DRM_IOWR(0x05, struct drm_client)
  #define DRM_IOCTL_GET_STATS             DRM_IOR( 0x06, struct drm_stats)
  #define DRM_IOCTL_SET_VERSION		DRM_IOWR(0x07, struct drm_set_version)
  
  #define DRM_IOCTL_SET_UNIQUE		DRM_IOW( 0x10, struct drm_unique)
  #define DRM_IOCTL_AUTH_MAGIC		DRM_IOW( 0x11, struct drm_auth)
  #define DRM_IOCTL_BLOCK			DRM_IOWR(0x12, struct drm_block)
  #define DRM_IOCTL_UNBLOCK		DRM_IOWR(0x13, struct drm_block)
  #define DRM_IOCTL_CONTROL		DRM_IOW( 0x14, struct drm_control)
  #define DRM_IOCTL_ADD_MAP		DRM_IOWR(0x15, struct drm_map)
  #define DRM_IOCTL_ADD_BUFS		DRM_IOWR(0x16, struct drm_buf_desc)
  #define DRM_IOCTL_MARK_BUFS		DRM_IOW( 0x17, struct drm_buf_desc)
  #define DRM_IOCTL_INFO_BUFS		DRM_IOWR(0x18, struct drm_buf_info)
  #define DRM_IOCTL_MAP_BUFS		DRM_IOWR(0x19, struct drm_buf_map)
  #define DRM_IOCTL_FREE_BUFS		DRM_IOW( 0x1a, struct drm_buf_free)
  
  #define DRM_IOCTL_RM_MAP		DRM_IOW( 0x1b, struct drm_map)
  
  #define DRM_IOCTL_SET_SAREA_CTX		DRM_IOW( 0x1c, struct drm_ctx_priv_map)
  #define DRM_IOCTL_GET_SAREA_CTX 	DRM_IOWR(0x1d, struct drm_ctx_priv_map)
  
  #define DRM_IOCTL_ADD_CTX		DRM_IOWR(0x20, struct drm_ctx)
  #define DRM_IOCTL_RM_CTX		DRM_IOWR(0x21, struct drm_ctx)
  #define DRM_IOCTL_MOD_CTX		DRM_IOW( 0x22, struct drm_ctx)
  #define DRM_IOCTL_GET_CTX		DRM_IOWR(0x23, struct drm_ctx)
  #define DRM_IOCTL_SWITCH_CTX		DRM_IOW( 0x24, struct drm_ctx)
  #define DRM_IOCTL_NEW_CTX		DRM_IOW( 0x25, struct drm_ctx)
  #define DRM_IOCTL_RES_CTX		DRM_IOWR(0x26, struct drm_ctx_res)
  #define DRM_IOCTL_ADD_DRAW		DRM_IOWR(0x27, struct drm_draw)
  #define DRM_IOCTL_RM_DRAW		DRM_IOWR(0x28, struct drm_draw)
  #define DRM_IOCTL_DMA			DRM_IOWR(0x29, struct drm_dma)
  #define DRM_IOCTL_LOCK			DRM_IOW( 0x2a, struct drm_lock)
  #define DRM_IOCTL_UNLOCK		DRM_IOW( 0x2b, struct drm_lock)
  #define DRM_IOCTL_FINISH		DRM_IOW( 0x2c, struct drm_lock)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
615
616
617
  
  #define DRM_IOCTL_AGP_ACQUIRE		DRM_IO(  0x30)
  #define DRM_IOCTL_AGP_RELEASE		DRM_IO(  0x31)
c60ce623b   Dave Airlie   drm: remove a bun...
618
619
620
621
622
623
  #define DRM_IOCTL_AGP_ENABLE		DRM_IOW( 0x32, struct drm_agp_mode)
  #define DRM_IOCTL_AGP_INFO		DRM_IOR( 0x33, struct drm_agp_info)
  #define DRM_IOCTL_AGP_ALLOC		DRM_IOWR(0x34, struct drm_agp_buffer)
  #define DRM_IOCTL_AGP_FREE		DRM_IOW( 0x35, struct drm_agp_buffer)
  #define DRM_IOCTL_AGP_BIND		DRM_IOW( 0x36, struct drm_agp_binding)
  #define DRM_IOCTL_AGP_UNBIND		DRM_IOW( 0x37, struct drm_agp_binding)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
624

b55430590   Dave Airlie   drm: the sg alloc...
625
  #define DRM_IOCTL_SG_ALLOC		DRM_IOWR(0x38, struct drm_scatter_gather)
c60ce623b   Dave Airlie   drm: remove a bun...
626
  #define DRM_IOCTL_SG_FREE		DRM_IOW( 0x39, struct drm_scatter_gather)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
627

c60ce623b   Dave Airlie   drm: remove a bun...
628
  #define DRM_IOCTL_WAIT_VBLANK		DRM_IOWR(0x3a, union drm_wait_vblank)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
629

c60ce623b   Dave Airlie   drm: remove a bun...
630
  #define DRM_IOCTL_UPDATE_DRAW		DRM_IOW(0x3f, struct drm_update_draw)
bea5679f9   Michel Dänzer   drm: Add support ...
631

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
632
633
  /**
   * Device specific ioctls should only be in their respective headers
99da6d861   Thomas Hellstrom   drm: allow for mo...
634
635
   * The device specific ioctl range is from 0x40 to 0x99.
   * Generic IOCTLS restart at 0xA0.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
636
637
638
639
640
   *
   * \sa drmCommandNone(), drmCommandRead(), drmCommandWrite(), and
   * drmCommandReadWrite().
   */
  #define DRM_COMMAND_BASE                0x40
99da6d861   Thomas Hellstrom   drm: allow for mo...
641
  #define DRM_COMMAND_END			0xA0
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
642

c60ce623b   Dave Airlie   drm: remove a bun...
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
  /* typedef area */
  #ifndef __KERNEL__
  typedef struct drm_clip_rect drm_clip_rect_t;
  typedef struct drm_drawable_info drm_drawable_info_t;
  typedef struct drm_tex_region drm_tex_region_t;
  typedef struct drm_hw_lock drm_hw_lock_t;
  typedef struct drm_version drm_version_t;
  typedef struct drm_unique drm_unique_t;
  typedef struct drm_list drm_list_t;
  typedef struct drm_block drm_block_t;
  typedef struct drm_control drm_control_t;
  typedef enum drm_map_type drm_map_type_t;
  typedef enum drm_map_flags drm_map_flags_t;
  typedef struct drm_ctx_priv_map drm_ctx_priv_map_t;
  typedef struct drm_map drm_map_t;
  typedef struct drm_client drm_client_t;
  typedef enum drm_stat_type drm_stat_type_t;
  typedef struct drm_stats drm_stats_t;
  typedef enum drm_lock_flags drm_lock_flags_t;
  typedef struct drm_lock drm_lock_t;
  typedef enum drm_dma_flags drm_dma_flags_t;
  typedef struct drm_buf_desc drm_buf_desc_t;
  typedef struct drm_buf_info drm_buf_info_t;
  typedef struct drm_buf_free drm_buf_free_t;
  typedef struct drm_buf_pub drm_buf_pub_t;
  typedef struct drm_buf_map drm_buf_map_t;
  typedef struct drm_dma drm_dma_t;
  typedef union drm_wait_vblank drm_wait_vblank_t;
  typedef struct drm_agp_mode drm_agp_mode_t;
  typedef enum drm_ctx_flags drm_ctx_flags_t;
  typedef struct drm_ctx drm_ctx_t;
  typedef struct drm_ctx_res drm_ctx_res_t;
  typedef struct drm_draw drm_draw_t;
  typedef struct drm_update_draw drm_update_draw_t;
  typedef struct drm_auth drm_auth_t;
  typedef struct drm_irq_busid drm_irq_busid_t;
  typedef enum drm_vblank_seq_type drm_vblank_seq_type_t;
  
  typedef struct drm_agp_buffer drm_agp_buffer_t;
  typedef struct drm_agp_binding drm_agp_binding_t;
  typedef struct drm_agp_info drm_agp_info_t;
  typedef struct drm_scatter_gather drm_scatter_gather_t;
  typedef struct drm_set_version drm_set_version_t;
  #endif
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
687
  #endif