📄 riva_hw.h
字号:
/***************************************************************************\|* *||* Copyright 1993-1999 NVIDIA, Corporation. All rights reserved. *||* *||* NOTICE TO USER: The source code is copyrighted under U.S. and *||* international laws. Users and possessors of this source code are *||* hereby granted a nonexclusive, royalty-free copyright license to *||* use this code in individual and commercial software. *||* *||* Any use of this source code must include, in the user documenta- *||* tion and internal comments to the code, notices to the end user *||* as follows: *||* *||* Copyright 1993-1999 NVIDIA, Corporation. All rights reserved. *||* *||* NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY *||* OF THIS SOURCE CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" *||* WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. NVIDIA, CORPOR- *||* ATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOURCE CODE, *||* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE- *||* MENT, AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL *||* NVIDIA, CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT, INCI- *||* DENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RE- *||* SULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION *||* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF *||* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. *||* *||* U.S. Government End Users. This source code is a "commercial *||* item," as that term is defined at 48 C.F.R. 2.101 (OCT 1995), *||* consisting of "commercial computer software" and "commercial *||* computer software documentation," as such terms are used in *||* 48 C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Govern- *||* ment only as a commercial end item. Consistent with 48 C.F.R. *||* 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), *||* all U.S. Government End Users acquire the source code with only *||* those rights set forth herein. *||* *|\***************************************************************************//* * GPL licensing note -- nVidia is allowing a liberal interpretation of * the documentation restriction above, to merely say that this nVidia's * copyright and disclaimer should be included with all code derived * from this source. -- Jeff Garzik <jgarzik@pobox.com>, 01/Nov/99 *//* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_hw.h,v 1.21 2002/10/14 18:22:46 mvojkovi Exp $ */#ifndef __RIVA_HW_H__#define __RIVA_HW_H__#define RIVA_SW_VERSION 0x00010003#ifndef Booltypedef int Bool;#endif#ifndef TRUE#define TRUE 1#endif#ifndef FALSE#define FALSE 0#endif#ifndef NULL#define NULL 0#endif/* * Typedefs to force certain sized values. */typedef unsigned char U008;typedef unsigned short U016;typedef unsigned int U032;/* * HW access macros. */#include <asm/io.h>#define NV_WR08(p,i,d) (__raw_writeb((d), (void __iomem *)(p) + (i)))#define NV_RD08(p,i) (__raw_readb((void __iomem *)(p) + (i)))#define NV_WR16(p,i,d) (__raw_writew((d), (void __iomem *)(p) + (i)))#define NV_RD16(p,i) (__raw_readw((void __iomem *)(p) + (i)))#define NV_WR32(p,i,d) (__raw_writel((d), (void __iomem *)(p) + (i)))#define NV_RD32(p,i) (__raw_readl((void __iomem *)(p) + (i)))#define VGA_WR08(p,i,d) (writeb((d), (void __iomem *)(p) + (i)))#define VGA_RD08(p,i) (readb((void __iomem *)(p) + (i)))/* * Define different architectures. */#define NV_ARCH_03 0x03#define NV_ARCH_04 0x04#define NV_ARCH_10 0x10#define NV_ARCH_20 0x20#define NV_ARCH_30 0x30#define NV_ARCH_40 0x40/***************************************************************************\* ** FIFO registers. ** *\***************************************************************************//* * Raster OPeration. Windows style ROP3. */typedef volatile struct{ U032 reserved00[4];#ifdef __BIG_ENDIAN U032 FifoFree;#else U016 FifoFree; U016 Nop;#endif U032 reserved01[0x0BB]; U032 Rop3;} RivaRop;/* * 8X8 Monochrome pattern. */typedef volatile struct{ U032 reserved00[4];#ifdef __BIG_ENDIAN U032 FifoFree;#else U016 FifoFree; U016 Nop;#endif U032 reserved01[0x0BD]; U032 Shape; U032 reserved03[0x001]; U032 Color0; U032 Color1; U032 Monochrome[2];} RivaPattern;/* * Scissor clip rectangle. */typedef volatile struct{ U032 reserved00[4];#ifdef __BIG_ENDIAN U032 FifoFree;#else U016 FifoFree; U016 Nop;#endif U032 reserved01[0x0BB]; U032 TopLeft; U032 WidthHeight;} RivaClip;/* * 2D filled rectangle. */typedef volatile struct{ U032 reserved00[4];#ifdef __BIG_ENDIAN U032 FifoFree;#else U016 FifoFree; U016 Nop[1];#endif U032 reserved01[0x0BC]; U032 Color; U032 reserved03[0x03E]; U032 TopLeft; U032 WidthHeight;} RivaRectangle;/* * 2D screen-screen BLT. */typedef volatile struct{ U032 reserved00[4];#ifdef __BIG_ENDIAN U032 FifoFree;#else U016 FifoFree; U016 Nop;#endif U032 reserved01[0x0BB]; U032 TopLeftSrc; U032 TopLeftDst; U032 WidthHeight;} RivaScreenBlt;/* * 2D pixel BLT. */typedef volatile struct{ U032 reserved00[4];#ifdef __BIG_ENDIAN U032 FifoFree;#else U016 FifoFree; U016 Nop[1];#endif U032 reserved01[0x0BC]; U032 TopLeft; U032 WidthHeight; U032 WidthHeightIn; U032 reserved02[0x03C]; U032 Pixels;} RivaPixmap;/* * Filled rectangle combined with monochrome expand. Useful for glyphs. */typedef volatile struct{ U032 reserved00[4];#ifdef __BIG_ENDIAN U032 FifoFree;#else U016 FifoFree; U016 Nop;#endif U032 reserved01[0x0BB]; U032 reserved03[(0x040)-1]; U032 Color1A; struct { U032 TopLeft; U032 WidthHeight; } UnclippedRectangle[64]; U032 reserved04[(0x080)-3]; struct { U032 TopLeft; U032 BottomRight; } ClipB; U032 Color1B; struct { U032 TopLeft; U032 BottomRight; } ClippedRectangle[64]; U032 reserved05[(0x080)-5]; struct { U032 TopLeft; U032 BottomRight; } ClipC; U032 Color1C; U032 WidthHeightC; U032 PointC; U032 MonochromeData1C; U032 reserved06[(0x080)+121]; struct { U032 TopLeft; U032 BottomRight; } ClipD; U032 Color1D; U032 WidthHeightInD; U032 WidthHeightOutD; U032 PointD; U032 MonochromeData1D; U032 reserved07[(0x080)+120]; struct { U032 TopLeft; U032 BottomRight; } ClipE; U032 Color0E; U032 Color1E; U032 WidthHeightInE; U032 WidthHeightOutE; U032 PointE; U032 MonochromeData01E;} RivaBitmap;/* * 3D textured, Z buffered triangle.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -