diff options
| -rw-r--r-- | shared-core/drm.h | 231 | 
1 files changed, 138 insertions, 93 deletions
| diff --git a/shared-core/drm.h b/shared-core/drm.h index e017c023..f8912b3b 100644 --- a/shared-core/drm.h +++ b/shared-core/drm.h @@ -152,31 +152,31 @@ typedef unsigned int drm_magic_t;	/**< Magic for authentication */   * \note KW: Actually it's illegal to change either for   * backwards-compatibility reasons.   */ -typedef struct drm_clip_rect { +struct drm_clip_rect {  	unsigned short x1;  	unsigned short y1;  	unsigned short x2;  	unsigned short y2; -} drm_clip_rect_t; +};  /**   * Drawable information.   */ -typedef struct drm_drawable_info { +struct drm_drawable_info {  	unsigned int num_rects; -	drm_clip_rect_t *rects; -} drm_drawable_info_t; +	struct drm_clip_rect *rects; +};  /**   * Texture region,   */ -typedef struct drm_tex_region { +struct drm_tex_region {  	unsigned char next;  	unsigned char prev;  	unsigned char in_use;  	unsigned char padding;  	unsigned int age; -} drm_tex_region_t; +};  /**   * Hardware lock. @@ -185,10 +185,10 @@ typedef struct drm_tex_region {   * processor bus contention on a multiprocessor system, there should not be any   * other data stored in the same cache line.   */ -typedef struct drm_hw_lock { +struct drm_hw_lock {  	__volatile__ unsigned int lock;		/**< lock variable */  	char padding[60];			/**< Pad to cache line */ -} drm_hw_lock_t; +};  /* This is beyond ugly, and only works on GCC.  However, it allows me to use   * drm.h in places (i.e., in the X-server) where I can't use size_t.  The real @@ -211,7 +211,7 @@ typedef struct drm_hw_lock {   *   * \sa drmGetVersion().   */ -typedef struct drm_version { +struct drm_version {  	int version_major;	  /**< Major version */  	int version_minor;	  /**< Minor version */  	int version_patchlevel;	  /**< Patch level */ @@ -221,35 +221,35 @@ typedef struct drm_version {  	char __user *date;		  /**< User-space buffer to hold date */  	DRM_SIZE_T desc_len;	  /**< Length of desc buffer */  	char __user *desc;		  /**< User-space buffer to hold desc */ -} drm_version_t; +};  /**   * DRM_IOCTL_GET_UNIQUE ioctl argument type.   *   * \sa drmGetBusid() and drmSetBusId().   */ -typedef struct drm_unique { +struct drm_unique {  	DRM_SIZE_T unique_len;	  /**< Length of unique */  	char __user *unique;		  /**< Unique name for driver instantiation */ -} drm_unique_t; +};  #undef DRM_SIZE_T -typedef struct drm_list { +struct drm_list {  	int count;		  /**< Length of user-space structures */ -	drm_version_t __user *version; -} drm_list_t; +	struct drm_version __user *version; +}; -typedef struct drm_block { +struct drm_block {  	int unused; -} drm_block_t; +};  /**   * DRM_IOCTL_CONTROL ioctl argument type.   *   * \sa drmCtlInstHandler() and drmCtlUninstHandler().   */ -typedef struct drm_control { +struct drm_control {  	enum {  		DRM_ADD_COMMAND,  		DRM_RM_COMMAND, @@ -257,12 +257,12 @@ typedef struct drm_control {  		DRM_UNINST_HANDLER  	} func;  	int irq; -} drm_control_t; +};  /**   * Type of memory to map.   */ -typedef enum drm_map_type { +enum drm_map_type {  	_DRM_FRAME_BUFFER = 0,	  /**< WC (no caching), no core dump */  	_DRM_REGISTERS = 1,	  /**< no caching, no core dump */  	_DRM_SHM = 2,		  /**< shared, cached */ @@ -270,12 +270,12 @@ typedef enum drm_map_type {  	_DRM_SCATTER_GATHER = 4,  /**< Scatter/gather memory for PCI DMA */  	_DRM_CONSISTENT = 5,	  /**< Consistent memory for PCI DMA */  	_DRM_TTM = 6 -} drm_map_type_t; +};  /**   * Memory mapping flags.   */ -typedef enum drm_map_flags { +enum drm_map_flags {  	_DRM_RESTRICTED = 0x01,	     /**< Cannot be mapped to user-virtual */  	_DRM_READ_ONLY = 0x02,  	_DRM_LOCKED = 0x04,	     /**< shared, cached, locked */ @@ -283,12 +283,12 @@ typedef enum drm_map_flags {  	_DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */  	_DRM_CONTAINS_LOCK = 0x20,   /**< SHM page that contains lock */  	_DRM_REMOVABLE = 0x40	     /**< Removable mapping */ -} drm_map_flags_t; +}; -typedef struct drm_ctx_priv_map { +struct drm_ctx_priv_map {  	unsigned int ctx_id;	 /**< Context requesting private mapping */  	void *handle;		 /**< Handle of map */ -} drm_ctx_priv_map_t; +};  /**   * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls @@ -296,30 +296,30 @@ typedef struct drm_ctx_priv_map {   *   * \sa drmAddMap().   */ -typedef struct drm_map { +struct drm_map {  	unsigned long offset;	 /**< Requested physical address (0 for SAREA)*/  	unsigned long size;	 /**< Requested physical size (bytes) */ -	drm_map_type_t type;	 /**< Type of memory to map */ -	drm_map_flags_t flags;	 /**< Flags */ +	enum drm_map_type type;	 /**< Type of memory to map */ +	enum drm_map_flags flags;	 /**< Flags */  	void *handle;		 /**< User-space: "Handle" to pass to mmap() */  				 /**< Kernel-space: kernel-virtual address */  	int mtrr;		 /**< MTRR slot used */  	/*   Private data */ -} drm_map_t; +};  /**   * DRM_IOCTL_GET_CLIENT ioctl argument type.   */ -typedef struct drm_client { +struct drm_client {  	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 */ -} drm_client_t; +}; -typedef enum { +enum drm_stat_type {  	_DRM_STAT_LOCK,  	_DRM_STAT_OPENS,  	_DRM_STAT_CLOSES, @@ -337,23 +337,23 @@ typedef enum {  	_DRM_STAT_SPECIAL,	/**< Special DMA (e.g., priority or polled) */  	_DRM_STAT_MISSED	/**< Missed DMA opportunity */  	    /* Add to the *END* of the list */ -} drm_stat_type_t; +};  /**   * DRM_IOCTL_GET_STATS ioctl argument type.   */ -typedef struct drm_stats { +struct drm_stats {  	unsigned long count;  	struct {  		unsigned long value; -		drm_stat_type_t type; +		enum drm_stat_type type;  	} data[15]; -} drm_stats_t; +};  /**   * Hardware locking flags.   */ -typedef enum drm_lock_flags { +enum drm_lock_flags {  	_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 */ @@ -363,17 +363,17 @@ typedef enum drm_lock_flags {  	   full-screen DGA-like mode. */  	_DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */  	_DRM_HALT_CUR_QUEUES = 0x20  /**< Halt all current queues */ -} drm_lock_flags_t; +};  /**   * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type.   *   * \sa drmGetLock() and drmUnlock().   */ -typedef struct drm_lock { +struct drm_lock {  	int context; -	drm_lock_flags_t flags; -} drm_lock_t; +	enum drm_lock_flags flags; +};  /**   * DMA flags @@ -383,7 +383,7 @@ typedef struct drm_lock {   *   * \sa drm_dma.   */ -typedef enum drm_dma_flags { +enum drm_dma_flags {  	/* Flags for DMA buffer dispatch */  	_DRM_DMA_BLOCK = 0x01,	      /**<  				       * Block until buffer dispatched. @@ -402,14 +402,14 @@ typedef enum drm_dma_flags {  	_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 */ -} drm_dma_flags_t; +};  /**   * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.   *   * \sa drmAddBufs().   */ -typedef struct drm_buf_desc { +struct drm_buf_desc {  	int count;		 /**< Number of buffers of this size */  	int size;		 /**< Size in bytes */  	int low_mark;		 /**< Low water mark */ @@ -425,48 +425,48 @@ typedef struct drm_buf_desc {  				  * Start address of where the AGP buffers are  				  * in the AGP aperture  				  */ -} drm_buf_desc_t; +};  /**   * DRM_IOCTL_INFO_BUFS ioctl argument type.   */ -typedef struct drm_buf_info { +struct drm_buf_info {  	int count;		  /**< Number of buffers described in list */ -	drm_buf_desc_t __user *list;	  /**< List of buffer descriptions */ -} drm_buf_info_t; +	struct drm_buf_desc __user *list; /**< List of buffer descriptions */ +};  /**   * DRM_IOCTL_FREE_BUFS ioctl argument type.   */ -typedef struct drm_buf_free { +struct drm_buf_free {  	int count;  	int __user *list; -} drm_buf_free_t; +};  /**   * Buffer information   *   * \sa drm_buf_map.   */ -typedef struct drm_buf_pub { +struct drm_buf_pub {  	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 */ -} drm_buf_pub_t; +};  /**   * DRM_IOCTL_MAP_BUFS ioctl argument type.   */ -typedef struct drm_buf_map { +struct drm_buf_map {  	int count;		/**< Length of the buffer list */  #if defined(__cplusplus)  	void __user *c_virtual;  #else  	void __user *virtual;		/**< Mmap'd area in user-virtual */  #endif -	drm_buf_pub_t __user *list;	/**< Buffer information */ -} drm_buf_map_t; +	struct drm_buf_pub __user *list;	/**< Buffer information */ +};  /**   * DRM_IOCTL_DMA ioctl argument type. @@ -475,48 +475,48 @@ typedef struct drm_buf_map {   *   * \sa drmDMA().   */ -typedef struct drm_dma { +struct drm_dma {  	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 */ -	drm_dma_flags_t flags;		  /**< Flags */ +	enum drm_dma_flags flags;	  /**< Flags */  	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 */ -} drm_dma_t; +}; -typedef enum { +enum drm_ctx_flags {  	_DRM_CONTEXT_PRESERVED = 0x01,  	_DRM_CONTEXT_2DONLY = 0x02 -} drm_ctx_flags_t; +};  /**   * DRM_IOCTL_ADD_CTX ioctl argument type.   *   * \sa drmCreateContext() and drmDestroyContext().   */ -typedef struct drm_ctx { +struct drm_ctx {  	drm_context_t handle; -	drm_ctx_flags_t flags; -} drm_ctx_t; +	enum drm_ctx_flags flags; +};  /**   * DRM_IOCTL_RES_CTX ioctl argument type.   */ -typedef struct drm_ctx_res { +struct drm_ctx_res {  	int count; -	drm_ctx_t __user *contexts; -} drm_ctx_res_t; +	struct drm_ctx __user *contexts; +};  /**   * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type.   */ -typedef struct drm_draw { +struct drm_draw {  	drm_drawable_t handle; -} drm_draw_t; +};  /**   * DRM_IOCTL_UPDATE_DRAW ioctl argument type. @@ -525,53 +525,53 @@ typedef enum {  	DRM_DRAWABLE_CLIPRECTS,  } drm_drawable_info_type_t; -typedef struct drm_update_draw { +struct drm_update_draw {  	drm_drawable_t handle;  	unsigned int type;  	unsigned int num;  	unsigned long long data; -} drm_update_draw_t; +};  /**   * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.   */ -typedef struct drm_auth { +struct drm_auth {  	drm_magic_t magic; -} drm_auth_t; +};  /**   * DRM_IOCTL_IRQ_BUSID ioctl argument type.   *   * \sa drmGetInterruptFromBusID().   */ -typedef struct drm_irq_busid { +struct drm_irq_busid {  	int irq;	/**< IRQ number */  	int busnum;	/**< bus number */  	int devnum;	/**< device number */  	int funcnum;	/**< function number */ -} drm_irq_busid_t; +}; -typedef enum { +enum drm_vblank_seq_type {  	_DRM_VBLANK_ABSOLUTE = 0x0,	/**< Wait for specific vblank sequence number */  	_DRM_VBLANK_RELATIVE = 0x1,	/**< Wait for given number of vblanks */  	_DRM_VBLANK_FLIP = 0x8000000,	/**< Scheduled buffer swap should flip */  	_DRM_VBLANK_NEXTONMISS = 0x10000000,	/**< If missed, wait for next vblank */  	_DRM_VBLANK_SECONDARY = 0x20000000,	/**< Secondary display controller */  	_DRM_VBLANK_SIGNAL = 0x40000000	/**< Send signal instead of blocking */ -} drm_vblank_seq_type_t; +};  #define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE)  #define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_SIGNAL | _DRM_VBLANK_SECONDARY | \  				_DRM_VBLANK_NEXTONMISS)  struct drm_wait_vblank_request { -	drm_vblank_seq_type_t type; +	enum drm_vblank_seq_type type;  	unsigned int sequence;  	unsigned long signal;  };  struct drm_wait_vblank_reply { -	drm_vblank_seq_type_t type; +	enum drm_vblank_seq_type type;  	unsigned int sequence;  	long tval_sec;  	long tval_usec; @@ -582,41 +582,41 @@ struct drm_wait_vblank_reply {   *   * \sa drmWaitVBlank().   */ -typedef union drm_wait_vblank { +union drm_wait_vblank {  	struct drm_wait_vblank_request request;  	struct drm_wait_vblank_reply reply; -} drm_wait_vblank_t; +};  /**   * DRM_IOCTL_AGP_ENABLE ioctl argument type.   *   * \sa drmAgpEnable().   */ -typedef struct drm_agp_mode { +struct drm_agp_mode {  	unsigned long mode;	/**< AGP mode */ -} drm_agp_mode_t; +};  /**   * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type.   *   * \sa drmAgpAlloc() and drmAgpFree().   */ -typedef struct drm_agp_buffer { +struct drm_agp_buffer {  	unsigned long size;	/**< In bytes -- will round to page boundary */  	unsigned long handle;	/**< Used for binding / unbinding */  	unsigned long type;	/**< Type of memory to allocate */  	unsigned long physical;	/**< Physical used by i810 */ -} drm_agp_buffer_t; +};  /**   * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type.   *   * \sa drmAgpBind() and drmAgpUnbind().   */ -typedef struct drm_agp_binding { +struct drm_agp_binding {  	unsigned long handle;	/**< From drm_agp_buffer */  	unsigned long offset;	/**< In bytes -- will round to page boundary */ -} drm_agp_binding_t; +};  /**   * DRM_IOCTL_AGP_INFO ioctl argument type. @@ -625,7 +625,7 @@ typedef struct drm_agp_binding {   * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(),   * drmAgpVendorId() and drmAgpDeviceId().   */ -typedef struct drm_agp_info { +struct drm_agp_info {  	int agp_version_major;  	int agp_version_minor;  	unsigned long mode; @@ -639,25 +639,25 @@ typedef struct drm_agp_info {  	unsigned short id_vendor;  	unsigned short id_device;  	/*@} */ -} drm_agp_info_t; +};  /**   * DRM_IOCTL_SG_ALLOC ioctl argument type.   */ -typedef struct drm_scatter_gather { +struct drm_scatter_gather {  	unsigned long size;	/**< In bytes -- will round to page boundary */  	unsigned long handle;	/**< Used for mapping / unmapping */ -} drm_scatter_gather_t; +};  /**   * DRM_IOCTL_SET_VERSION ioctl argument type.   */ -typedef struct drm_set_version { +struct drm_set_version {  	int drm_di_major;  	int drm_di_minor;  	int drm_dd_major;  	int drm_dd_minor; -} drm_set_version_t; +};  #define DRM_FENCE_FLAG_EMIT                0x00000001 @@ -1015,4 +1015,49 @@ typedef struct drm_mm_init_arg {  #define DRM_COMMAND_BASE                0x40  #define DRM_COMMAND_END                 0xA0 +/* typedef area */ +#if 1 +/*!defined(__KERNEL__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)*/ +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 +  #endif | 
