1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __R128_DRM_H__ 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __R128_DRM_H__ 21106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#include "drm.h" 22106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifdef __cplusplus 23106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif 24106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifndef __R128_SAREA_DEFINES__ 2505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define __R128_SAREA_DEFINES__ 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_UPLOAD_CONTEXT 0x001 27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_UPLOAD_SETUP 0x002 28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_UPLOAD_TEX0 0x004 2905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define R128_UPLOAD_TEX1 0x008 30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_UPLOAD_TEX0IMAGES 0x010 31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_UPLOAD_TEX1IMAGES 0x020 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_UPLOAD_CORE 0x040 3305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define R128_UPLOAD_MASKS 0x080 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_UPLOAD_WINDOW 0x100 35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_UPLOAD_CLIPRECTS 0x200 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_REQUIRE_QUIESCENCE 0x400 3705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define R128_UPLOAD_ALL 0x7ff 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_FRONT 0x1 39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_BACK 0x2 40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_DEPTH 0x4 4105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define R128_POINTS 0x1 42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_LINES 0x2 43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_LINE_STRIP 0x3 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_TRIANGLES 0x4 4505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define R128_TRIANGLE_FAN 0x5 46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_TRIANGLE_STRIP 0x6 47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_BUFFER_SIZE 16384 48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_INDEX_PRIM_OFFSET 20 4905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define R128_HOSTDATA_BLIT_OFFSET 32 50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_NR_SAREA_CLIPRECTS 12 51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_LOCAL_TEX_HEAP 0 52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_AGP_TEX_HEAP 1 5305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define R128_NR_TEX_HEAPS 2 54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_NR_TEX_REGIONS 64 55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_LOG_TEX_GRANULARITY 16 56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_NR_CONTEXT_REGS 12 5705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define R128_MAX_TEXTURE_LEVELS 11 58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_MAX_TEXTURE_UNITS 2 59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct { 6105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int dst_pitch_offset_c; 62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int dp_gui_master_cntl_c; 63d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int sc_top_left_c; 64d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int sc_bottom_right_c; 6505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int z_offset_c; 66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int z_pitch_c; 67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int z_sten_cntl_c; 68d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int tex_cntl_c; 6905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int misc_3d_state_cntl_reg; 70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int texture_clr_cmp_clr_c; 71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int texture_clr_cmp_msk_c; 72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int fog_color_c; 7305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int tex_size_pitch_c; 74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int constant_color_c; 75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int pm4_vc_fpu_setup; 76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int setup_cntl; 7705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int dp_write_mask; 78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int sten_ref_mask_c; 79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int plane_3d_mask_c; 80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int window_xy_offset; 8105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int scale_3d_cntl; 82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} drm_r128_context_regs_t; 83655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct { 84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int tex_cntl; 8505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int tex_combine_cntl; 86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int tex_size_pitch; 87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int tex_offset[R128_MAX_TEXTURE_LEVELS]; 88d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int tex_border_color; 8905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} drm_r128_texture_regs_t; 90655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_sarea { 91d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_r128_context_regs_t context_state; 92d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao drm_r128_texture_regs_t tex_state[R128_MAX_TEXTURE_UNITS]; 9305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int dirty; 94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int vertsize; 95d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int vc_format; 96d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_clip_rect boxes[R128_NR_SAREA_CLIPRECTS]; 9705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int nbox; 98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int last_frame; 99d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int last_dispatch; 100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct drm_tex_region tex_list[R128_NR_TEX_HEAPS][R128_NR_TEX_REGIONS + 1]; 10105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int tex_age[R128_NR_TEX_HEAPS]; 102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int ctx_owner; 103d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int pfAllowPageFlip; 104d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int pfCurrentPage; 10505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} drm_r128_sarea_t; 106655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_INIT 0x00 107655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_CCE_START 0x01 108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_CCE_STOP 0x02 10905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_R128_CCE_RESET 0x03 110655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_CCE_IDLE 0x04 111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_RESET 0x06 112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_SWAP 0x07 11305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_R128_CLEAR 0x08 114655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_VERTEX 0x09 115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_INDICES 0x0a 116655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_BLIT 0x0b 11705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_R128_DEPTH 0x0c 118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_STIPPLE 0x0d 119655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_INDIRECT 0x0f 120655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_FULLSCREEN 0x10 12105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_R128_CLEAR2 0x11 122655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_GETPARAM 0x12 123655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DRM_R128_FLIP 0x13 124d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_R128_INIT, drm_r128_init_t) 12505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_IOCTL_R128_CCE_START DRM_IO(DRM_COMMAND_BASE + DRM_R128_CCE_START) 126d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_CCE_STOP DRM_IOW(DRM_COMMAND_BASE + DRM_R128_CCE_STOP, drm_r128_cce_stop_t) 127d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_CCE_RESET DRM_IO(DRM_COMMAND_BASE + DRM_R128_CCE_RESET) 128d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_CCE_IDLE DRM_IO(DRM_COMMAND_BASE + DRM_R128_CCE_IDLE) 12905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_IOCTL_R128_RESET DRM_IO(DRM_COMMAND_BASE + DRM_R128_RESET) 130d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_SWAP DRM_IO(DRM_COMMAND_BASE + DRM_R128_SWAP) 131d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_CLEAR DRM_IOW(DRM_COMMAND_BASE + DRM_R128_CLEAR, drm_r128_clear_t) 132d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_VERTEX DRM_IOW(DRM_COMMAND_BASE + DRM_R128_VERTEX, drm_r128_vertex_t) 13305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_IOCTL_R128_INDICES DRM_IOW(DRM_COMMAND_BASE + DRM_R128_INDICES, drm_r128_indices_t) 134d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_BLIT DRM_IOW(DRM_COMMAND_BASE + DRM_R128_BLIT, drm_r128_blit_t) 135d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_DEPTH DRM_IOW(DRM_COMMAND_BASE + DRM_R128_DEPTH, drm_r128_depth_t) 136d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_STIPPLE DRM_IOW(DRM_COMMAND_BASE + DRM_R128_STIPPLE, drm_r128_stipple_t) 13705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_IOCTL_R128_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_R128_INDIRECT, drm_r128_indirect_t) 138d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_FULLSCREEN DRM_IOW(DRM_COMMAND_BASE + DRM_R128_FULLSCREEN, drm_r128_fullscreen_t) 139d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_CLEAR2 DRM_IOW(DRM_COMMAND_BASE + DRM_R128_CLEAR2, drm_r128_clear2_t) 140d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define DRM_IOCTL_R128_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_R128_GETPARAM, drm_r128_getparam_t) 14105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define DRM_IOCTL_R128_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_R128_FLIP) 142655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_init { 143d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao enum { 144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao R128_INIT_CCE = 0x01, 14505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris R128_CLEANUP_CCE = 0x02 146d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao } func; 147d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned long sarea_priv_offset; 148d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int is_pci; 14905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris int cce_mode; 150d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int cce_secure; 151d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int ring_size; 152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int usec_timeout; 15305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int fb_bpp; 154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int front_offset, front_pitch; 155d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int back_offset, back_pitch; 156d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int depth_bpp; 15705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int depth_offset, depth_pitch; 158d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int span_offset; 159d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned long fb_offset; 160d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned long mmio_offset; 16105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned long ring_offset; 162d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned long ring_rptr_offset; 163d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned long buffers_offset; 164d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned long agp_textures_offset; 16505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} drm_r128_init_t; 166655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_cce_stop { 167d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int flush; 168d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int idle; 16905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} drm_r128_cce_stop_t; 170655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_clear { 171d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int flags; 172d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int clear_color; 17305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned int clear_depth; 174d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int color_mask; 175d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int depth_mask; 176655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} drm_r128_clear_t; 17705d08e9716b5974d6ed08973f44930804890b902Christopher Ferristypedef struct drm_r128_vertex { 178d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int prim; 179d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int idx; 180d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int count; 18105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris int discard; 182655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} drm_r128_vertex_t; 183655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_indices { 184d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int prim; 18505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris int idx; 186d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int start; 187d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int end; 188d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int discard; 18905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} drm_r128_indices_t; 190655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_blit { 191d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int idx; 192d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int pitch; 19305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris int offset; 194d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int format; 195d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned short x, y; 196d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned short width, height; 19705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} drm_r128_blit_t; 198655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_depth { 199d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao enum { 200d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao R128_WRITE_SPAN = 0x01, 20105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris R128_WRITE_PIXELS = 0x02, 202d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao R128_READ_SPAN = 0x03, 203d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao R128_READ_PIXELS = 0x04 204d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao } func; 20505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris int n; 206d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int __user * x; 207d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int __user * y; 208d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int __user * buffer; 20905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris unsigned char __user * mask; 210655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} drm_r128_depth_t; 211655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_stipple { 212d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao unsigned int __user * mask; 21305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} drm_r128_stipple_t; 214655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_indirect { 215d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int idx; 216d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int start; 21705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris int end; 218d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int discard; 219655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} drm_r128_indirect_t; 220655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_fullscreen { 22105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris enum { 222d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao R128_INIT_FULLSCREEN = 0x01, 223d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao R128_CLEANUP_FULLSCREEN = 0x02 224d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao } func; 22505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} drm_r128_fullscreen_t; 226655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define R128_PARAM_IRQ_NR 1 227655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct drm_r128_getparam { 228d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int param; 22905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris void __user * value; 230655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} drm_r128_getparam_t; 231106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#ifdef __cplusplus 232106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#endif 233655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 234