⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 radeon_drm.h

📁 linux-2.6.15.6
💻 H
📖 第 1 页 / 共 2 页
字号:
	/* Setup state */	unsigned int se_cntl_status;	/* 0x2140 */	/* Misc state */	unsigned int re_top_left;	/* 0x26c0 */	unsigned int re_misc;} drm_radeon_context_regs_t;typedef struct {	/* Zbias state */	unsigned int se_zbias_factor;	/* 0x1dac */	unsigned int se_zbias_constant;} drm_radeon_context2_regs_t;/* Setup registers for each texture unit */typedef struct {	unsigned int pp_txfilter;	unsigned int pp_txformat;	unsigned int pp_txoffset;	unsigned int pp_txcblend;	unsigned int pp_txablend;	unsigned int pp_tfactor;	unsigned int pp_border_color;} drm_radeon_texture_regs_t;typedef struct {	unsigned int start;	unsigned int finish;	unsigned int prim:8;	unsigned int stateidx:8;	unsigned int numverts:16;	/* overloaded as offset/64 for elt prims */	unsigned int vc_format;	/* vertex format */} drm_radeon_prim_t;typedef struct {	drm_radeon_context_regs_t context;	drm_radeon_texture_regs_t tex[RADEON_MAX_TEXTURE_UNITS];	drm_radeon_context2_regs_t context2;	unsigned int dirty;} drm_radeon_state_t;typedef struct {	/* The channel for communication of state information to the	 * kernel on firing a vertex buffer with either of the	 * obsoleted vertex/index ioctls.	 */	drm_radeon_context_regs_t context_state;	drm_radeon_texture_regs_t tex_state[RADEON_MAX_TEXTURE_UNITS];	unsigned int dirty;	unsigned int vertsize;	unsigned int vc_format;	/* The current cliprects, or a subset thereof.	 */	drm_clip_rect_t boxes[RADEON_NR_SAREA_CLIPRECTS];	unsigned int nbox;	/* Counters for client-side throttling of rendering clients.	 */	unsigned int last_frame;	unsigned int last_dispatch;	unsigned int last_clear;	drm_tex_region_t tex_list[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS +						       1];	unsigned int tex_age[RADEON_NR_TEX_HEAPS];	int ctx_owner;	int pfState;		/* number of 3d windows (0,1,2ormore) */	int pfCurrentPage;	/* which buffer is being displayed? */	int crtc2_base;		/* CRTC2 frame offset */	int tiling_enabled;	/* set by drm, read by 2d + 3d clients */} drm_radeon_sarea_t;/* WARNING: If you change any of these defines, make sure to change the * defines in the Xserver file (xf86drmRadeon.h) * * KW: actually it's illegal to change any of this (backwards compatibility). *//* Radeon specific ioctls * The device specific ioctl range is 0x40 to 0x79. */#define DRM_RADEON_CP_INIT    0x00#define DRM_RADEON_CP_START   0x01#define DRM_RADEON_CP_STOP    0x02#define DRM_RADEON_CP_RESET   0x03#define DRM_RADEON_CP_IDLE    0x04#define DRM_RADEON_RESET      0x05#define DRM_RADEON_FULLSCREEN 0x06#define DRM_RADEON_SWAP       0x07#define DRM_RADEON_CLEAR      0x08#define DRM_RADEON_VERTEX     0x09#define DRM_RADEON_INDICES    0x0A#define DRM_RADEON_NOT_USED#define DRM_RADEON_STIPPLE    0x0C#define DRM_RADEON_INDIRECT   0x0D#define DRM_RADEON_TEXTURE    0x0E#define DRM_RADEON_VERTEX2    0x0F#define DRM_RADEON_CMDBUF     0x10#define DRM_RADEON_GETPARAM   0x11#define DRM_RADEON_FLIP       0x12#define DRM_RADEON_ALLOC      0x13#define DRM_RADEON_FREE       0x14#define DRM_RADEON_INIT_HEAP  0x15#define DRM_RADEON_IRQ_EMIT   0x16#define DRM_RADEON_IRQ_WAIT   0x17#define DRM_RADEON_CP_RESUME  0x18#define DRM_RADEON_SETPARAM   0x19#define DRM_RADEON_SURF_ALLOC 0x1a#define DRM_RADEON_SURF_FREE  0x1b#define DRM_IOCTL_RADEON_CP_INIT    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t)#define DRM_IOCTL_RADEON_CP_START   DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_START)#define DRM_IOCTL_RADEON_CP_STOP    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t)#define DRM_IOCTL_RADEON_CP_RESET   DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_RESET)#define DRM_IOCTL_RADEON_CP_IDLE    DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_IDLE)#define DRM_IOCTL_RADEON_RESET      DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_RESET)#define DRM_IOCTL_RADEON_FULLSCREEN DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FULLSCREEN, drm_radeon_fullscreen_t)#define DRM_IOCTL_RADEON_SWAP       DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_SWAP)#define DRM_IOCTL_RADEON_CLEAR      DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CLEAR, drm_radeon_clear_t)#define DRM_IOCTL_RADEON_VERTEX     DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX, drm_radeon_vertex_t)#define DRM_IOCTL_RADEON_INDICES    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INDICES, drm_radeon_indices_t)#define DRM_IOCTL_RADEON_STIPPLE    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_STIPPLE, drm_radeon_stipple_t)#define DRM_IOCTL_RADEON_INDIRECT   DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_INDIRECT, drm_radeon_indirect_t)#define DRM_IOCTL_RADEON_TEXTURE    DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_TEXTURE, drm_radeon_texture_t)#define DRM_IOCTL_RADEON_VERTEX2    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_VERTEX2, drm_radeon_vertex2_t)#define DRM_IOCTL_RADEON_CMDBUF     DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CMDBUF, drm_radeon_cmd_buffer_t)#define DRM_IOCTL_RADEON_GETPARAM   DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GETPARAM, drm_radeon_getparam_t)#define DRM_IOCTL_RADEON_FLIP       DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_FLIP)#define DRM_IOCTL_RADEON_ALLOC      DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_ALLOC, drm_radeon_mem_alloc_t)#define DRM_IOCTL_RADEON_FREE       DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_FREE, drm_radeon_mem_free_t)#define DRM_IOCTL_RADEON_INIT_HEAP  DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_INIT_HEAP, drm_radeon_mem_init_heap_t)#define DRM_IOCTL_RADEON_IRQ_EMIT   DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_IRQ_EMIT, drm_radeon_irq_emit_t)#define DRM_IOCTL_RADEON_IRQ_WAIT   DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_IRQ_WAIT, drm_radeon_irq_wait_t)#define DRM_IOCTL_RADEON_CP_RESUME  DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_RESUME)#define DRM_IOCTL_RADEON_SETPARAM   DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SETPARAM, drm_radeon_setparam_t)#define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t)#define DRM_IOCTL_RADEON_SURF_FREE  DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t)typedef struct drm_radeon_init {	enum {		RADEON_INIT_CP = 0x01,		RADEON_CLEANUP_CP = 0x02,		RADEON_INIT_R200_CP = 0x03,		RADEON_INIT_R300_CP = 0x04	} func;	unsigned long sarea_priv_offset;	int is_pci;	int cp_mode;	int gart_size;	int ring_size;	int usec_timeout;	unsigned int fb_bpp;	unsigned int front_offset, front_pitch;	unsigned int back_offset, back_pitch;	unsigned int depth_bpp;	unsigned int depth_offset, depth_pitch;	unsigned long fb_offset;	unsigned long mmio_offset;	unsigned long ring_offset;	unsigned long ring_rptr_offset;	unsigned long buffers_offset;	unsigned long gart_textures_offset;} drm_radeon_init_t;typedef struct drm_radeon_cp_stop {	int flush;	int idle;} drm_radeon_cp_stop_t;typedef struct drm_radeon_fullscreen {	enum {		RADEON_INIT_FULLSCREEN = 0x01,		RADEON_CLEANUP_FULLSCREEN = 0x02	} func;} drm_radeon_fullscreen_t;#define CLEAR_X1	0#define CLEAR_Y1	1#define CLEAR_X2	2#define CLEAR_Y2	3#define CLEAR_DEPTH	4typedef union drm_radeon_clear_rect {	float f[5];	unsigned int ui[5];} drm_radeon_clear_rect_t;typedef struct drm_radeon_clear {	unsigned int flags;	unsigned int clear_color;	unsigned int clear_depth;	unsigned int color_mask;	unsigned int depth_mask;	/* misnamed field:  should be stencil */	drm_radeon_clear_rect_t __user *depth_boxes;} drm_radeon_clear_t;typedef struct drm_radeon_vertex {	int prim;	int idx;		/* Index of vertex buffer */	int count;		/* Number of vertices in buffer */	int discard;		/* Client finished with buffer? */} drm_radeon_vertex_t;typedef struct drm_radeon_indices {	int prim;	int idx;	int start;	int end;	int discard;		/* Client finished with buffer? */} drm_radeon_indices_t;/* v1.2 - obsoletes drm_radeon_vertex and drm_radeon_indices *      - allows multiple primitives and state changes in a single ioctl *      - supports driver change to emit native primitives */typedef struct drm_radeon_vertex2 {	int idx;		/* Index of vertex buffer */	int discard;		/* Client finished with buffer? */	int nr_states;	drm_radeon_state_t __user *state;	int nr_prims;	drm_radeon_prim_t __user *prim;} drm_radeon_vertex2_t;/* v1.3 - obsoletes drm_radeon_vertex2 *      - allows arbitarily large cliprect list *      - allows updating of tcl packet, vector and scalar state *      - allows memory-efficient description of state updates *      - allows state to be emitted without a primitive *           (for clears, ctx switches) *      - allows more than one dma buffer to be referenced per ioctl *      - supports tcl driver *      - may be extended in future versions with new cmd types, packets */typedef struct drm_radeon_cmd_buffer {	int bufsz;	char __user *buf;	int nbox;	drm_clip_rect_t __user *boxes;} drm_radeon_cmd_buffer_t;typedef struct drm_radeon_tex_image {	unsigned int x, y;	/* Blit coordinates */	unsigned int width, height;	const void __user *data;} drm_radeon_tex_image_t;typedef struct drm_radeon_texture {	unsigned int offset;	int pitch;	int format;	int width;		/* Texture image coordinates */	int height;	drm_radeon_tex_image_t __user *image;} drm_radeon_texture_t;typedef struct drm_radeon_stipple {	unsigned int __user *mask;} drm_radeon_stipple_t;typedef struct drm_radeon_indirect {	int idx;	int start;	int end;	int discard;} drm_radeon_indirect_t;/* 1.3: An ioctl to get parameters that aren't available to the 3d * client any other way. */#define RADEON_PARAM_GART_BUFFER_OFFSET    1	/* card offset of 1st GART buffer */#define RADEON_PARAM_LAST_FRAME            2#define RADEON_PARAM_LAST_DISPATCH         3#define RADEON_PARAM_LAST_CLEAR            4/* Added with DRM version 1.6. */#define RADEON_PARAM_IRQ_NR                5#define RADEON_PARAM_GART_BASE             6	/* card offset of GART base *//* Added with DRM version 1.8. */#define RADEON_PARAM_REGISTER_HANDLE       7	/* for drmMap() */#define RADEON_PARAM_STATUS_HANDLE         8#define RADEON_PARAM_SAREA_HANDLE          9#define RADEON_PARAM_GART_TEX_HANDLE       10#define RADEON_PARAM_SCRATCH_OFFSET        11typedef struct drm_radeon_getparam {	int param;	void __user *value;} drm_radeon_getparam_t;/* 1.6: Set up a memory manager for regions of shared memory: */#define RADEON_MEM_REGION_GART 1#define RADEON_MEM_REGION_FB   2typedef struct drm_radeon_mem_alloc {	int region;	int alignment;	int size;	int __user *region_offset;	/* offset from start of fb or GART */} drm_radeon_mem_alloc_t;typedef struct drm_radeon_mem_free {	int region;	int region_offset;} drm_radeon_mem_free_t;typedef struct drm_radeon_mem_init_heap {	int region;	int size;	int start;} drm_radeon_mem_init_heap_t;/* 1.6: Userspace can request & wait on irq's: */typedef struct drm_radeon_irq_emit {	int __user *irq_seq;} drm_radeon_irq_emit_t;typedef struct drm_radeon_irq_wait {	int irq_seq;} drm_radeon_irq_wait_t;/* 1.10: Clients tell the DRM where they think the framebuffer is located in * the card's address space, via a new generic ioctl to set parameters */typedef struct drm_radeon_setparam {	unsigned int param;	int64_t value;} drm_radeon_setparam_t;#define RADEON_SETPARAM_FB_LOCATION    1	/* determined framebuffer location */#define RADEON_SETPARAM_SWITCH_TILING  2	/* enable/disable color tiling */#define RADEON_SETPARAM_PCIGART_LOCATION 3	/* PCI Gart Location *//* 1.14: Clients can allocate/free a surface */typedef struct drm_radeon_surface_alloc {	unsigned int address;	unsigned int size;	unsigned int flags;} drm_radeon_surface_alloc_t;typedef struct drm_radeon_surface_free {	unsigned int address;} drm_radeon_surface_free_t;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -