📄 ffb_drv.h
字号:
/* $Id: ffb_drv.h,v 1.1 2000/06/01 04:24:39 davem Exp $ * ffb_drv.h: Creator/Creator3D direct rendering driver. * * Copyright (C) 2000 David S. Miller (davem@redhat.com) *//* Auxilliary clips. */typedef struct { volatile unsigned int min; volatile unsigned int max;} ffb_auxclip, *ffb_auxclipPtr;/* FFB register set. */typedef struct _ffb_fbc { /* Next vertex registers, on the right we list which drawops * use said register and the logical name the register has in * that context. */ /* DESCRIPTION DRAWOP(NAME) *//*0x00*/unsigned int pad1[3]; /* Reserved *//*0x0c*/volatile unsigned int alpha; /* ALPHA Transparency *//*0x10*/volatile unsigned int red; /* RED *//*0x14*/volatile unsigned int green; /* GREEN *//*0x18*/volatile unsigned int blue; /* BLUE *//*0x1c*/volatile unsigned int z; /* DEPTH *//*0x20*/volatile unsigned int y; /* Y triangle(DOYF) */ /* aadot(DYF) */ /* ddline(DYF) */ /* aaline(DYF) *//*0x24*/volatile unsigned int x; /* X triangle(DOXF) */ /* aadot(DXF) */ /* ddline(DXF) */ /* aaline(DXF) *//*0x28*/unsigned int pad2[2]; /* Reserved *//*0x30*/volatile unsigned int ryf; /* Y (alias to DOYF) ddline(RYF) */ /* aaline(RYF) */ /* triangle(RYF) *//*0x34*/volatile unsigned int rxf; /* X ddline(RXF) */ /* aaline(RXF) */ /* triangle(RXF) *//*0x38*/unsigned int pad3[2]; /* Reserved *//*0x40*/volatile unsigned int dmyf; /* Y (alias to DOYF) triangle(DMYF) *//*0x44*/volatile unsigned int dmxf; /* X triangle(DMXF) *//*0x48*/unsigned int pad4[2]; /* Reserved *//*0x50*/volatile unsigned int ebyi; /* Y (alias to RYI) polygon(EBYI) *//*0x54*/volatile unsigned int ebxi; /* X polygon(EBXI) *//*0x58*/unsigned int pad5[2]; /* Reserved *//*0x60*/volatile unsigned int by; /* Y brline(RYI) */ /* fastfill(OP) */ /* polygon(YI) */ /* rectangle(YI) */ /* bcopy(SRCY) */ /* vscroll(SRCY) *//*0x64*/volatile unsigned int bx; /* X brline(RXI) */ /* polygon(XI) */ /* rectangle(XI) */ /* bcopy(SRCX) */ /* vscroll(SRCX) */ /* fastfill(GO) *//*0x68*/volatile unsigned int dy; /* destination Y fastfill(DSTY) */ /* bcopy(DSRY) */ /* vscroll(DSRY) *//*0x6c*/volatile unsigned int dx; /* destination X fastfill(DSTX) */ /* bcopy(DSTX) */ /* vscroll(DSTX) *//*0x70*/volatile unsigned int bh; /* Y (alias to RYI) brline(DYI) */ /* dot(DYI) */ /* polygon(ETYI) */ /* Height fastfill(H) */ /* bcopy(H) */ /* vscroll(H) */ /* Y count fastfill(NY) *//*0x74*/volatile unsigned int bw; /* X dot(DXI) */ /* brline(DXI) */ /* polygon(ETXI) */ /* fastfill(W) */ /* bcopy(W) */ /* vscroll(W) */ /* fastfill(NX) *//*0x78*/unsigned int pad6[2]; /* Reserved *//*0x80*/unsigned int pad7[32]; /* Reserved */ /* Setup Unit's vertex state register *//*100*/ volatile unsigned int suvtx;/*104*/ unsigned int pad8[63]; /* Reserved */ /* Frame Buffer Control Registers *//*200*/ volatile unsigned int ppc; /* Pixel Processor Control *//*204*/ volatile unsigned int wid; /* Current WID *//*208*/ volatile unsigned int fg; /* FG data *//*20c*/ volatile unsigned int bg; /* BG data *//*210*/ volatile unsigned int consty; /* Constant Y *//*214*/ volatile unsigned int constz; /* Constant Z *//*218*/ volatile unsigned int xclip; /* X Clip *//*21c*/ volatile unsigned int dcss; /* Depth Cue Scale Slope *//*220*/ volatile unsigned int vclipmin; /* Viewclip XY Min Bounds *//*224*/ volatile unsigned int vclipmax; /* Viewclip XY Max Bounds *//*228*/ volatile unsigned int vclipzmin; /* Viewclip Z Min Bounds *//*22c*/ volatile unsigned int vclipzmax; /* Viewclip Z Max Bounds *//*230*/ volatile unsigned int dcsf; /* Depth Cue Scale Front Bound *//*234*/ volatile unsigned int dcsb; /* Depth Cue Scale Back Bound *//*238*/ volatile unsigned int dczf; /* Depth Cue Z Front *//*23c*/ volatile unsigned int dczb; /* Depth Cue Z Back *//*240*/ unsigned int pad9; /* Reserved *//*244*/ volatile unsigned int blendc; /* Alpha Blend Control *//*248*/ volatile unsigned int blendc1; /* Alpha Blend Color 1 *//*24c*/ volatile unsigned int blendc2; /* Alpha Blend Color 2 *//*250*/ volatile unsigned int fbramitc; /* FB RAM Interleave Test Control *//*254*/ volatile unsigned int fbc; /* Frame Buffer Control *//*258*/ volatile unsigned int rop; /* Raster OPeration *//*25c*/ volatile unsigned int cmp; /* Frame Buffer Compare *//*260*/ volatile unsigned int matchab; /* Buffer AB Match Mask *//*264*/ volatile unsigned int matchc; /* Buffer C(YZ) Match Mask *//*268*/ volatile unsigned int magnab; /* Buffer AB Magnitude Mask *//*26c*/ volatile unsigned int magnc; /* Buffer C(YZ) Magnitude Mask *//*270*/ volatile unsigned int fbcfg0; /* Frame Buffer Config 0 *//*274*/ volatile unsigned int fbcfg1; /* Frame Buffer Config 1 *//*278*/ volatile unsigned int fbcfg2; /* Frame Buffer Config 2 *//*27c*/ volatile unsigned int fbcfg3; /* Frame Buffer Config 3 *//*280*/ volatile unsigned int ppcfg; /* Pixel Processor Config *//*284*/ volatile unsigned int pick; /* Picking Control *//*288*/ volatile unsigned int fillmode; /* FillMode *//*28c*/ volatile unsigned int fbramwac; /* FB RAM Write Address Control *//*290*/ volatile unsigned int pmask; /* RGB PlaneMask *//*294*/ volatile unsigned int xpmask; /* X PlaneMask *//*298*/ volatile unsigned int ypmask; /* Y PlaneMask *//*29c*/ volatile unsigned int zpmask; /* Z PlaneMask *//*2a0*/ ffb_auxclip auxclip[4]; /* Auxilliary Viewport Clip */ /* New 3dRAM III support regs *//*2c0*/ volatile unsigned int rawblend2;/*2c4*/ volatile unsigned int rawpreblend;/*2c8*/ volatile unsigned int rawstencil;/*2cc*/ volatile unsigned int rawstencilctl;/*2d0*/ volatile unsigned int threedram1;/*2d4*/ volatile unsigned int threedram2;/*2d8*/ volatile unsigned int passin;/*2dc*/ volatile unsigned int rawclrdepth;/*2e0*/ volatile unsigned int rawpmask;/*2e4*/ volatile unsigned int rawcsrc;/*2e8*/ volatile unsigned int rawmatch;/*2ec*/ volatile unsigned int rawmagn;/*2f0*/ volatile unsigned int rawropblend;/*2f4*/ volatile unsigned int rawcmp;/*2f8*/ volatile unsigned int rawwac;/*2fc*/ volatile unsigned int fbramid; /*300*/ volatile unsigned int drawop; /* Draw OPeration *//*304*/ unsigned int pad10[2]; /* Reserved *//*30c*/ volatile unsigned int lpat; /* Line Pattern control *//*310*/ unsigned int pad11; /* Reserved *//*314*/ volatile unsigned int fontxy; /* XY Font coordinate *//*318*/ volatile unsigned int fontw; /* Font Width *//*31c*/ volatile unsigned int fontinc; /* Font Increment *//*320*/ volatile unsigned int font; /* Font bits *//*324*/ unsigned int pad12[3]; /* Reserved *//*330*/ volatile unsigned int blend2;/*334*/ volatile unsigned int preblend;/*338*/ volatile unsigned int stencil;/*33c*/ volatile unsigned int stencilctl;/*340*/ unsigned int pad13[4]; /* Reserved *//*350*/ volatile unsigned int dcss1; /* Depth Cue Scale Slope 1 *//*354*/ volatile unsigned int dcss2; /* Depth Cue Scale Slope 2 *//*358*/ volatile unsigned int dcss3; /* Depth Cue Scale Slope 3 *//*35c*/ volatile unsigned int widpmask;/*360*/ volatile unsigned int dcs2;/*364*/ volatile unsigned int dcs3;/*368*/ volatile unsigned int dcs4;/*36c*/ unsigned int pad14; /* Reserved *//*370*/ volatile unsigned int dcd2;/*374*/ volatile unsigned int dcd3;/*378*/ volatile unsigned int dcd4;/*37c*/ unsigned int pad15; /* Reserved *//*380*/ volatile unsigned int pattern[32]; /* area Pattern *//*400*/ unsigned int pad16[8]; /* Reserved *//*420*/ volatile unsigned int reset; /* chip RESET *//*424*/ unsigned int pad17[247]; /* Reserved *//*800*/ volatile unsigned int devid; /* Device ID *//*804*/ unsigned int pad18[63]; /* Reserved *//*900*/ volatile unsigned int ucsr; /* User Control & Status Register *//*904*/ unsigned int pad19[31]; /* Reserved *//*980*/ volatile unsigned int mer; /* Mode Enable Register *//*984*/ unsigned int pad20[1439]; /* Reserved */} ffb_fbc, *ffb_fbcPtr;struct ffb_hw_context { int is_2d_only; unsigned int ppc; unsigned int wid; unsigned int fg; unsigned int bg; unsigned int consty; unsigned int constz; unsigned int xclip; unsigned int dcss; unsigned int vclipmin; unsigned int vclipmax; unsigned int vclipzmin; unsigned int vclipzmax; unsigned int dcsf; unsigned int dcsb; unsigned int dczf; unsigned int dczb; unsigned int blendc; unsigned int blendc1; unsigned int blendc2; unsigned int fbc; unsigned int rop; unsigned int cmp; unsigned int matchab; unsigned int matchc; unsigned int magnab; unsigned int magnc; unsigned int pmask; unsigned int xpmask; unsigned int ypmask; unsigned int zpmask; unsigned int auxclip0min; unsigned int auxclip0max; unsigned int auxclip1min; unsigned int auxclip1max; unsigned int auxclip2min; unsigned int auxclip2max; unsigned int auxclip3min; unsigned int auxclip3max; unsigned int drawop; unsigned int lpat; unsigned int fontxy; unsigned int fontw; unsigned int fontinc; unsigned int area_pattern[32]; unsigned int ucsr; unsigned int stencil; unsigned int stencilctl; unsigned int dcss1; unsigned int dcss2; unsigned int dcss3; unsigned int dcs2; unsigned int dcs3; unsigned int dcs4; unsigned int dcd2; unsigned int dcd3; unsigned int dcd4; unsigned int mer;};#define FFB_MAX_CTXS 32enum ffb_chip_type { ffb1_prototype = 0, /* Early pre-FCS FFB */ ffb1_standard, /* First FCS FFB, 100Mhz UPA, 66MHz gclk */ ffb1_speedsort, /* Second FCS FFB, 100Mhz UPA, 75MHz gclk */ ffb2_prototype, /* Early pre-FCS vertical FFB2 */ ffb2_vertical, /* First FCS FFB2/vertical, 100Mhz UPA, 100MHZ gclk, 75(SingleBuffer)/83(DoubleBuffer) MHz fclk */ ffb2_vertical_plus, /* Second FCS FFB2/vertical, same timings */ ffb2_horizontal, /* First FCS FFB2/horizontal, same timings as FFB2/vert */ ffb2_horizontal_plus, /* Second FCS FFB2/horizontal, same timings */ afb_m3, /* FCS Elite3D, 3 float chips */ afb_m6 /* FCS Elite3D, 6 float chips */};typedef struct ffb_dev_priv { /* Misc software state. */ int prom_node; enum ffb_chip_type ffb_type; u64 card_phys_base; struct miscdevice miscdev; /* Controller registers. */ ffb_fbcPtr regs; /* Context table. */ struct ffb_hw_context *hw_state[FFB_MAX_CTXS];} ffb_dev_priv_t;extern unsigned long ffb_get_unmapped_area(struct file *filp, unsigned long hint, unsigned long len, unsigned long pgoff, unsigned long flags);extern void ffb_set_context_ioctls(void);extern drm_ioctl_desc_t DRM(ioctls)[];extern int ffb_driver_context_switch(drm_device_t *dev, int old, int new);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -