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

📄 riva_hw.h

📁 linux-2.6.15.6
💻 H
📖 第 1 页 / 共 2 页
字号:
 */typedef volatile struct{    U032 reserved00[4];#ifdef __BIG_ENDIAN    U032 FifoFree;#else    U016 FifoFree;    U016 Nop;#endif    U032 reserved01[0x0BC];    U032 TextureOffset;    U032 TextureFormat;    U032 TextureFilter;    U032 FogColor;/* This is a problem on LynxOS */#ifdef Control#undef Control#endif    U032 Control;    U032 AlphaTest;    U032 reserved02[0x339];    U032 FogAndIndex;    U032 Color;    float ScreenX;    float ScreenY;    float ScreenZ;    float EyeM;    float TextureS;    float TextureT;} RivaTexturedTriangle03;typedef volatile struct{    U032 reserved00[4];#ifdef __BIG_ENDIAN    U032 FifoFree;#else    U016 FifoFree;    U016 Nop;#endif    U032 reserved01[0x0BB];    U032 ColorKey;    U032 TextureOffset;    U032 TextureFormat;    U032 TextureFilter;    U032 Blend;/* This is a problem on LynxOS */#ifdef Control#undef Control#endif    U032 Control;    U032 FogColor;    U032 reserved02[0x39];    struct    {        float ScreenX;        float ScreenY;        float ScreenZ;        float EyeM;        U032 Color;        U032 Specular;        float TextureS;        float TextureT;    } Vertex[16];    U032 DrawTriangle3D;} RivaTexturedTriangle05;/* * 2D line. */typedef volatile struct{    U032 reserved00[4];#ifdef __BIG_ENDIAN    U032 FifoFree;#else    U016 FifoFree;    U016 Nop[1];#endif    U032 reserved01[0x0BC];    U032 Color;             /* source color               0304-0307*/    U032 Reserved02[0x03e];    struct {                /* start aliased methods in array   0400-    */        U032 point0;        /* y_x S16_S16 in pixels            0-   3*/        U032 point1;        /* y_x S16_S16 in pixels            4-   7*/    } Lin[16];              /* end of aliased methods in array      -047f*/    struct {                /* start aliased methods in array   0480-    */        U032 point0X;       /* in pixels, 0 at left                0-   3*/        U032 point0Y;       /* in pixels, 0 at top                 4-   7*/        U032 point1X;       /* in pixels, 0 at left                8-   b*/        U032 point1Y;       /* in pixels, 0 at top                 c-   f*/    } Lin32[8];             /* end of aliased methods in array      -04ff*/    U032 PolyLin[32];       /* y_x S16_S16 in pixels         0500-057f*/    struct {                /* start aliased methods in array   0580-    */        U032 x;             /* in pixels, 0 at left                0-   3*/        U032 y;             /* in pixels, 0 at top                 4-   7*/    } PolyLin32[16];        /* end of aliased methods in array      -05ff*/    struct {                /* start aliased methods in array   0600-    */        U032 color;         /* source color                     0-   3*/        U032 point;         /* y_x S16_S16 in pixels            4-   7*/    } ColorPolyLin[16];     /* end of aliased methods in array      -067f*/} RivaLine;/* * 2D/3D surfaces */typedef volatile struct{    U032 reserved00[4];#ifdef __BIG_ENDIAN    U032 FifoFree;#else    U016 FifoFree;    U016 Nop;#endif    U032 reserved01[0x0BE];    U032 Offset;} RivaSurface;typedef volatile struct{    U032 reserved00[4];#ifdef __BIG_ENDIAN    U032 FifoFree;#else    U016 FifoFree;    U016 Nop;#endif    U032 reserved01[0x0BD];    U032 Pitch;    U032 RenderBufferOffset;    U032 ZBufferOffset;} RivaSurface3D;    /***************************************************************************\*                                                                           **                        Virtualized RIVA H/W interface.                    **                                                                           *\***************************************************************************/#define FP_ENABLE  1#define FP_DITHER  2struct _riva_hw_inst;struct _riva_hw_state;/* * Virtialized chip interface. Makes RIVA 128 and TNT look alike. */typedef struct _riva_hw_inst{    /*     * Chip specific settings.     */    U032 Architecture;    U032 Version;    U032 Chipset;    U032 CrystalFreqKHz;    U032 RamAmountKBytes;    U032 MaxVClockFreqKHz;    U032 RamBandwidthKBytesPerSec;    U032 EnableIRQ;    U032 IO;    U032 VBlankBit;    U032 FifoFreeCount;    U032 FifoEmptyCount;    U032 CursorStart;    U032 flatPanel;    Bool twoHeads;    /*     * Non-FIFO registers.     */    volatile U032 __iomem *PCRTC0;    volatile U032 __iomem *PCRTC;    volatile U032 __iomem *PRAMDAC0;    volatile U032 __iomem *PFB;    volatile U032 __iomem *PFIFO;    volatile U032 __iomem *PGRAPH;    volatile U032 __iomem *PEXTDEV;    volatile U032 __iomem *PTIMER;    volatile U032 __iomem *PMC;    volatile U032 __iomem *PRAMIN;    volatile U032 __iomem *FIFO;    volatile U032 __iomem *CURSOR;    volatile U008 __iomem *PCIO0;    volatile U008 __iomem *PCIO;    volatile U008 __iomem *PVIO;    volatile U008 __iomem *PDIO0;    volatile U008 __iomem *PDIO;    volatile U032 __iomem *PRAMDAC;    /*     * Common chip functions.     */    int  (*Busy)(struct _riva_hw_inst *);    void (*CalcStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *,int,int,int,int,int);    void (*LoadStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *);    void (*UnloadStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *);    void (*SetStartAddress)(struct _riva_hw_inst *,U032);    void (*SetSurfaces2D)(struct _riva_hw_inst *,U032,U032);    void (*SetSurfaces3D)(struct _riva_hw_inst *,U032,U032);    int  (*ShowHideCursor)(struct _riva_hw_inst *,int);    void (*LockUnlock)(struct _riva_hw_inst *, int);    /*     * Current extended mode settings.     */    struct _riva_hw_state *CurrentState;    /*     * FIFO registers.     */    RivaRop                 __iomem *Rop;    RivaPattern             __iomem *Patt;    RivaClip                __iomem *Clip;    RivaPixmap              __iomem *Pixmap;    RivaScreenBlt           __iomem *Blt;    RivaBitmap              __iomem *Bitmap;    RivaLine                __iomem *Line;    RivaTexturedTriangle03  __iomem *Tri03;    RivaTexturedTriangle05  __iomem *Tri05;} RIVA_HW_INST;/* * Extended mode state information. */typedef struct _riva_hw_state{    U032 bpp;    U032 width;    U032 height;    U032 interlace;    U032 repaint0;    U032 repaint1;    U032 screen;    U032 scale;    U032 dither;    U032 extra;    U032 pixel;    U032 horiz;    U032 arbitration0;    U032 arbitration1;    U032 vpll;    U032 vpll2;    U032 pllsel;    U032 general;    U032 crtcOwner;    U032 head;     U032 head2;     U032 config;    U032 cursorConfig;	    U032 cursor0;    U032 cursor1;    U032 cursor2;    U032 offset0;    U032 offset1;    U032 offset2;    U032 offset3;    U032 pitch0;    U032 pitch1;    U032 pitch2;    U032 pitch3;} RIVA_HW_STATE;/* * External routines. */int RivaGetConfig(RIVA_HW_INST *, unsigned int);/* * FIFO Free Count. Should attempt to yield processor if RIVA is busy. */#define RIVA_FIFO_FREE(hwinst,hwptr,cnt)                            \{                                                                   \    while ((hwinst).FifoFreeCount < (cnt)) {                        \	mb();mb();						    \        (hwinst).FifoFreeCount = NV_RD32(&(hwinst).hwptr->FifoFree, 0) >> 2;     \    }								    \    (hwinst).FifoFreeCount -= (cnt);                                \}#endif /* __RIVA_HW_H__ */

⌨️ 快捷键说明

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