Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1780 lines
50 KiB

/******************************Module*Header**********************************\
*
*
* Module Name: p2regs.h
*
* Content:
*
* Copyright (c) 1994-1998 3Dlabs Inc. Ltd. All rights reserved.
* Copyright (c) 1995-1999 Microsoft Corporation. All rights reserved.
\*****************************************************************************/
#ifndef P2REG_H
#define P2REG_H
#if (defined(_MSDOS)/* mr || defined(__cplusplus)*/)
typedef unsigned long unsigned32;
typedef signed long signed32;
#else
typedef unsigned int unsigned32;
typedef signed int signed32;
#endif
typedef unsigned short unsigned16;
typedef signed short signed16;
typedef unsigned char unsigned8;
typedef signed char signed8;
typedef long __Permedia2SignedIntegerFmat;
typedef unsigned32 __Permedia2UnsignedIntegerFmat;
/*
** Generic signed 16 + signed 16 format
*/
#if BIG_ENDIAN == 1
typedef struct {
signed32 hi: 16;
signed32 lo: 16;
} __Permedia2S16S16Fmat;
#else
typedef struct {
signed32 lo: 16;
signed32 hi: 16;
} __Permedia2S16S16Fmat;
#endif
/*
** Delta Registers
*/
#ifdef BIG_ENDIAN
typedef struct {
unsigned32 pad: 13;
unsigned32 ColorOrder: 1;
unsigned32 BackfaceCull: 1;
unsigned32 FillDirection: 1;
unsigned32 TextureParameterMode: 2;
unsigned32 ClampEnable: 1;
unsigned32 NoDraw: 1;
unsigned32 DiamondExit: 1;
unsigned32 SubPixelCorrectionEnable: 1;
unsigned32 DiffuseTextureEnable: 1;
unsigned32 SpecularTextureEnable: 1;
unsigned32 DepthEnable: 1;
unsigned32 SmoothShadingEnable: 1;
unsigned32 TextureEnable: 1;
unsigned32 FogEnable: 1;
unsigned32 DepthFormat: 2;
unsigned32 TargetChip: 2;
} __Permedia2DeltaModeFmat;
#else
typedef struct {
unsigned32 TargetChip: 2;
unsigned32 DepthFormat: 2;
unsigned32 FogEnable: 1;
unsigned32 TextureEnable: 1;
unsigned32 SmoothShadingEnable: 1;
unsigned32 DepthEnable: 1;
unsigned32 SpecularTextureEnable: 1;
unsigned32 DiffuseTextureEnable: 1;
unsigned32 SubPixelCorrectionEnable: 1;
unsigned32 DiamondExit: 1;
unsigned32 NoDraw: 1;
unsigned32 ClampEnable: 1;
unsigned32 TextureParameterMode: 2;
unsigned32 FillDirection: 1;
unsigned32 BackfaceCull: 1;
unsigned32 ColorOrder: 1;
unsigned32 pad: 13;
} __Permedia2DeltaModeFmat;
#endif
#ifdef BIG_ENDIAN
typedef struct {
unsigned32 pad2: 11;
unsigned32 RejectNegativeFace: 1;
unsigned32 pad1: 1;
unsigned32 SpanOperation: 1;
unsigned32 pad0: 1;
unsigned32 SubPixelCorrectionEnable: 1;
unsigned32 CoverageEnable: 1;
unsigned32 FogEnable: 1;
unsigned32 TextureEnable: 1;
unsigned32 SyncOnHostData: 1;
unsigned32 SyncOnBitMask: 1;
unsigned32 UsePointTable: 1;
unsigned32 AntialiasingQuality: 1;
unsigned32 AntialiasEnable: 1;
unsigned32 PrimitiveType: 2;
unsigned32 reserved: 2;
unsigned32 FastFillEnable: 1;
unsigned32 ResetLineStipple: 1;
unsigned32 LineStippleEnable: 1;
unsigned32 AreaStippleEnable: 1;
} __Permedia2DeltaDrawFmat;
#else
typedef struct {
unsigned32 AreaStippleEnable: 1;
unsigned32 LineStippleEnable: 1;
unsigned32 ResetLineStipple: 1;
unsigned32 FastFillEnable: 1;
unsigned32 reserved: 2;
unsigned32 PrimitiveType: 2;
unsigned32 AntialiasEnable: 1;
unsigned32 AntialiasingQuality: 1;
unsigned32 UsePointTable: 1;
unsigned32 SyncOnBitMask: 1;
unsigned32 SyncOnHostData: 1;
unsigned32 TextureEnable: 1;
unsigned32 FogEnable: 1;
unsigned32 CoverageEnable: 1;
unsigned32 SubPixelCorrectionEnable: 1;
unsigned32 pad0: 1;
unsigned32 SpanOperation: 1;
unsigned32 pad1: 1;
unsigned32 RejectNegativeFace: 1;
unsigned32 pad2: 11;
} __Permedia2DeltaDrawFmat;
#endif
#ifdef BIG_ENDIAN
typedef union {
struct {
signed32 Val: 32; /* 2.30s or 16.16s */
} STQ;
struct {
unsigned32 pad: 8;
unsigned32 Val: 24; /* 2.22s */
} K;
struct {
unsigned32 pad: 1;
unsigned32 Val: 31; /* 1.30us */
} RGBA;
struct {
signed32 Val: 32; /* 10.22s */
} F;
struct {
signed32 Val: 32; /* 16.16s */
} XY;
struct {
unsigned32 pad: 1;
unsigned32 Val: 31; /* 1.31us */
} Z;
} __Permedia2DeltaFixedFmat;
#else
typedef union {
struct {
signed32 Val: 32; /* 2.30s or 16.16s */
} STQ;
struct {
unsigned32 Val: 24; /* 2.22s */
unsigned32 pad: 8;
} K;
struct {
unsigned32 Val: 31; /* 1.30us */
unsigned32 pad: 1;
} RGBA;
struct {
signed32 Val: 32; /* 10.22s */
} F;
struct {
signed32 Val: 32; /* 16.16s */
} XY;
struct {
unsigned32 Val: 31; /* 1.31us */
unsigned32 pad: 1;
} Z;
} __Permedia2DeltaFixedFmat;
#endif
#define N_P2_DELTA_BROADCAST_MASK_BITS 4
#ifdef BIG_ENDIAN
typedef struct {
unsigned32 pad: 32 - N_P2_DELTA_BROADCAST_MASK_BITS;
unsigned32 Mask: N_P2_DELTA_BROADCAST_MASK_BITS ;
} __Permedia2DeltaBroadcastMaskFmat;
#else
typedef struct {
unsigned32 Mask: N_P2_DELTA_BROADCAST_MASK_BITS ;
unsigned32 pad: 32 - N_P2_DELTA_BROADCAST_MASK_BITS ;
} __Permedia2DeltaBroadcastMaskFmat;
#endif
/*
** Permedia 2 Host In Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 Mask: 16;
unsigned32 Mode: 2;
unsigned32 pad0: 5;
unsigned32 MajorGroup: 5;
unsigned32 Offset: 4;
} __Permedia2DMADataFmat;
#else
typedef struct {
unsigned32 Offset: 4;
unsigned32 MajorGroup: 5;
unsigned32 pad0: 5;
unsigned32 Mode: 2;
unsigned32 Mask: 16;
} __Permedia2DMADataFmat;
#endif
/*
** Permedia 2 Rasterizer Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 4;
signed32 Integer: 12;
unsigned32 Fraction: 15;
unsigned32 pad0: 1;
} __Permedia2StartXDomFmat,
__Permedia2dXDomFmat,
__Permedia2StartXSubFmat,
__Permedia2dXSubFmat;
#else
typedef struct {
unsigned32 pad0: 1;
unsigned32 Fraction: 15;
signed32 Integer: 12;
unsigned32 pad1: 4;
} __Permedia2StartXDomFmat,
__Permedia2dXDomFmat,
__Permedia2StartXSubFmat,
__Permedia2dXSubFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 4;
signed32 Integer: 12;
unsigned32 Fraction: 15;
unsigned32 pad0: 1;
} __Permedia2StartYFmat,
__Permedia2dYFmat;
#else
typedef struct {
unsigned32 pad0: 1;
unsigned32 Fraction: 15;
signed32 Integer: 12;
unsigned32 pad1: 4;
} __Permedia2StartYFmat,
__Permedia2dYFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 20;
unsigned32 Val: 12;
} __Permedia2CountFmat,
__Permedia2ContinueNewLineFmat,
__Permedia2ContinueNewDomFmat,
__Permedia2ContinueNewSubFmat,
__Permedia2ContinueFmat;
#else
typedef struct {
unsigned32 Val: 12;
unsigned32 pad0: 20;
} __Permedia2CountFmat,
__Permedia2ContinueNewLineFmat,
__Permedia2ContinueNewDomFmat,
__Permedia2ContinueNewSubFmat,
__Permedia2ContinueFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad5: 9;
unsigned32 IncreaseY: 1;
unsigned32 IncreaseX: 1;
unsigned32 RejectNegativeFace: 1;
unsigned32 pad4: 2;
unsigned32 ReuseBitMask: 1;
unsigned32 SubPixelCorrectionEnable: 1;
unsigned32 pad3: 1;
unsigned32 FogEnable: 1;
unsigned32 TextureEnable: 1;
unsigned32 SyncOnHostData: 1;
unsigned32 SyncOnBitMask: 1;
unsigned32 pad2: 3;
unsigned32 PrimitiveType: 2;
unsigned32 pad1: 2;
unsigned32 FastFillEnable: 1;
unsigned32 pad0: 2;
unsigned32 AreaStippleEnable: 1;
} __Permedia2RenderFmat,
__Permedia2PrepareToRenderFmat;
#else
typedef struct {
unsigned32 AreaStippleEnable: 1;
unsigned32 pad0: 2;
unsigned32 FastFillEnable: 1;
unsigned32 pad1: 2;
unsigned32 PrimitiveType: 2;
unsigned32 pad2: 3;
unsigned32 SyncOnBitMask: 1;
unsigned32 SyncOnHostData: 1;
unsigned32 TextureEnable: 1;
unsigned32 FogEnable: 1;
unsigned32 pad3: 1;
unsigned32 SubPixelCorrectionEnable: 1;
unsigned32 ReuseBitMask: 1;
unsigned32 pad4: 2;
unsigned32 RejectNegativeFace: 1;
unsigned32 IncreaseX: 1;
unsigned32 IncreaseY: 1;
unsigned32 pad5: 9;
} __Permedia2RenderFmat,
__Permedia2PrepareToRenderFmat;
#endif
typedef __Permedia2UnsignedIntegerFmat __Permedia2BitMaskPatternFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 12;
unsigned32 BitMaskRelative: 1;
unsigned32 LimitsEnable: 1;
unsigned32 pad0: 1;
unsigned32 HostDataByteSwapMode: 2;
unsigned32 BitMaskOffset: 5;
unsigned32 BitMaskPacking: 1;
unsigned32 BitMaskByteSwapMode: 2;
unsigned32 ForceBackgroundColor: 1;
unsigned32 BiasCoordinates: 2;
unsigned32 FractionAdjust: 2;
unsigned32 InvertBitMask: 1;
unsigned32 MirrorBitMask: 1;
} __Permedia2RasterizerModeFmat;
#else
typedef struct {
unsigned32 MirrorBitMask: 1;
unsigned32 InvertBitMask: 1;
unsigned32 FractionAdjust: 2;
unsigned32 BiasCoordinates: 2;
unsigned32 ForceBackgroundColor: 1;
unsigned32 BitMaskByteSwapMode: 2;
unsigned32 BitMaskPacking: 1;
unsigned32 BitMaskOffset: 5;
unsigned32 HostDataByteSwapMode: 2;
unsigned32 pad0: 1;
unsigned32 LimitsEnable: 1;
unsigned32 BitMaskRelative: 1;
unsigned32 pad1: 12;
} __Permedia2RasterizerModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 4;
signed32 Max: 12;
unsigned32 pad0: 4;
signed32 Min: 12;
} __Permedia2YLimitsFmat, __Permedia2XLimitsFmat;
#else
typedef struct {
signed32 Min: 12;
unsigned32 pad0: 4;
signed32 Max: 12;
unsigned32 pad1: 4;
} __Permedia2YLimitsFmat, __Permedia2XLimitsFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 4;
signed32 Y: 12;
unsigned32 pad0: 4;
signed32 X: 12;
} __Permedia2StepFmat;
#else
typedef struct {
signed32 X: 12;
unsigned32 pad0: 4;
signed32 Y: 12;
unsigned32 pad1: 4;
} __Permedia2StepFmat;
#endif
typedef __Permedia2StepFmat __Permedia2ActiveStepXFmat;
typedef __Permedia2StepFmat __Permedia2ActiveStepYDomEdgeFmat;
typedef __Permedia2StepFmat __Permedia2PassiveStepXFmat;
typedef __Permedia2StepFmat __Permedia2PassiveStepYDomEdgeFmat;
typedef __Permedia2StepFmat __Permedia2FastBlockFillFmat;
typedef __Permedia2StepFmat __Permedia2RectangleOriginFmat;
typedef __Permedia2StepFmat __Permedia2RectangleSizeFmat;
typedef __Permedia2StepFmat __Permedia2FBSourceDeltaFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 5;
unsigned32 Y: 11;
unsigned32 pad0: 5;
unsigned32 X: 11;
} __Permedia2UnsignedStepFmat;
#else
typedef struct {
unsigned32 X: 11;
unsigned32 pad0: 5;
unsigned32 Y: 11;
unsigned32 pad1: 5;
} __Permedia2UnsignedStepFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 4;
signed32 XRight: 12;
unsigned32 pad0: 4;
signed32 XLeft: 12;
} __Permedia2FastBlockLimitsFmat;
#else
typedef struct {
signed32 XLeft: 12;
unsigned32 pad0: 4;
signed32 XRight: 12;
unsigned32 pad1: 4;
} __Permedia2FastBlockLimitsFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 27;
unsigned32 Sign: 1;
unsigned32 Magnitude: 4;
} __Permedia2SubPixelCorrectionFmat;
#else
typedef struct {
unsigned32 Magnitude: 4;
unsigned32 Sign: 1;
unsigned32 pad0: 27;
} __Permedia2SubPixelCorrectionFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
signed32 RelativeOffset: 3;
unsigned32 pad1: 1;
signed32 XStart: 12;
unsigned32 pad0: 4;
signed32 XEnd: 12;
} __Permedia2PackedDataLimitsFmat;
#else
typedef struct {
signed32 XEnd: 12;
unsigned32 pad0: 4;
signed32 XStart: 12;
unsigned32 pad1: 1;
signed32 RelativeOffset: 3;
} __Permedia2PackedDataLimitsFmat;
#endif
typedef __Permedia2UnsignedIntegerFmat __Permedia2SpanMaskFmat;
/*
** Permedia 2 Scissor and Stipple Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 30;
unsigned32 ScreenScissorEnable: 1;
unsigned32 UserScissorEnable: 1;
} __Permedia2ScissorModeFmat;
#else
typedef struct {
unsigned32 UserScissorEnable: 1;
unsigned32 ScreenScissorEnable: 1;
unsigned32 pad0: 30;
} __Permedia2ScissorModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad3: 11;
unsigned32 ForceBackgroundColor: 1;
unsigned32 MirrorY: 1;
unsigned32 MirrorX: 1;
unsigned32 InvertStipplePattern: 1;
unsigned32 pad2: 2;
unsigned32 YOffset: 3;
unsigned32 pad1: 2;
unsigned32 XOffset: 3;
unsigned32 pad0: 6;
unsigned32 UnitEnable: 1;
} __Permedia2AreaStippleModeFmat;
#else
typedef struct {
unsigned32 UnitEnable: 1;
unsigned32 pad0: 6;
unsigned32 XOffset: 3;
unsigned32 pad1: 2;
unsigned32 YOffset: 3;
unsigned32 pad2: 2;
unsigned32 InvertStipplePattern: 1;
unsigned32 MirrorX: 1;
unsigned32 MirrorY: 1;
unsigned32 ForceBackgroundColor: 1;
unsigned32 pad3: 11;
} __Permedia2AreaStippleModeFmat;
#endif
typedef __Permedia2StepFmat __Permedia2ScreenRegionFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 4;
signed32 Y: 12;
unsigned32 pad0: 4;
signed32 X: 12;
} __Permedia2ScissorMinXYFmat, __Permedia2ScissorMaxXYFmat;
#else
typedef struct {
signed32 X: 12;
unsigned32 pad0: 4;
signed32 Y: 12;
unsigned32 pad1: 4;
} __Permedia2ScissorMinXYFmat, __Permedia2ScissorMaxXYFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 4;
signed32 Y: 12;
unsigned32 pad0: 4;
signed32 X: 12;
} __Permedia2WindowOriginFmat;
#else
typedef struct {
signed32 X: 12;
unsigned32 pad0: 4;
signed32 Y: 12;
unsigned32 pad1: 4;
} __Permedia2WindowOriginFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 5;
unsigned32 Y: 11;
unsigned32 pad0: 5;
unsigned32 X: 11;
} __Permedia2ScreenSizeFmat;
#else
typedef struct {
unsigned32 X: 11;
unsigned32 pad0: 5;
unsigned32 Y: 11;
unsigned32 pad1: 5;
} __Permedia2ScreenSizeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 24;
unsigned32 Pattern: 8;
} __Permedia2AreaStipplePatternFmat;
#else
typedef struct {
unsigned32 Pattern: 8;
unsigned32 pad0: 24;
} __Permedia2AreaStipplePatternFmat;
#endif
/*
** Permedia 2 Color DDA Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad2: 8;
signed32 Integer: 9;
unsigned32 Fraction: 11;
unsigned32 pad0: 4;
} __Permedia2CStartFmat;
#else
typedef struct {
unsigned32 pad0: 4;
unsigned32 Fraction: 11;
signed32 Integer: 9;
unsigned32 pad2: 8;
} __Permedia2CStartFmat;
#endif
typedef __Permedia2CStartFmat __Permedia2RStartFmat;
typedef __Permedia2CStartFmat __Permedia2GStartFmat;
typedef __Permedia2CStartFmat __Permedia2BStartFmat;
typedef __Permedia2CStartFmat __Permedia2AStartFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad2: 8;
signed32 Integer: 9;
unsigned32 Fraction: 11;
unsigned32 pad0: 4;
} __Permedia2dCdxFmat;
#else
typedef struct {
unsigned32 pad0: 4;
unsigned32 Fraction: 11;
signed32 Integer: 9;
unsigned32 pad2: 8;
} __Permedia2dCdxFmat;
#endif
typedef __Permedia2dCdxFmat __Permedia2dRdxFmat;
typedef __Permedia2dCdxFmat __Permedia2dGdxFmat;
typedef __Permedia2dCdxFmat __Permedia2dBdxFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad2: 8;
signed32 Integer: 9;
unsigned32 Fraction: 11;
unsigned32 pad0: 4;
} __Permedia2dCdyDomFmat;
#else
typedef struct {
unsigned32 pad0: 4;
unsigned32 Fraction: 11;
signed32 Integer: 9;
unsigned32 pad2: 8;
} __Permedia2dCdyDomFmat;
#endif
typedef __Permedia2dCdyDomFmat __Permedia2dRdyDomFmat;
typedef __Permedia2dCdyDomFmat __Permedia2dGdyDomFmat;
typedef __Permedia2dCdyDomFmat __Permedia2dBdyDomFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 Alpha: 8;
unsigned32 Blue: 8;
unsigned32 Green: 8;
unsigned32 Red: 8;
} __Permedia2ColorFmat;
#else
typedef struct {
unsigned32 Red: 8;
unsigned32 Green: 8;
unsigned32 Blue: 8;
unsigned32 Alpha: 8;
} __Permedia2ColorFmat;
#endif
typedef __Permedia2ColorFmat __Permedia2ConstantColorFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 AlphaInteger: 5;
unsigned32 AlphaFraction: 3;
unsigned32 BlueInteger: 5;
unsigned32 BlueFraction: 3;
unsigned32 GreenInteger: 5;
unsigned32 GreenFraction: 3;
unsigned32 RedInteger: 5;
unsigned32 RedFraction: 3;
} __Permedia2FractionalColorFmat;
#else
typedef struct {
unsigned32 RedFraction: 3;
unsigned32 RedInteger: 5;
unsigned32 GreenFraction: 3;
unsigned32 GreenInteger: 5;
unsigned32 BlueFraction: 3;
unsigned32 BlueInteger: 5;
unsigned32 AlphaFraction: 3;
unsigned32 AlphaInteger: 5;
} __Permedia2FractionalColorFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 30;
unsigned32 ShadeMode: 1;
unsigned32 UnitEnable: 1;
} __Permedia2ColorDDAModeFmat;
#else
typedef struct {
unsigned32 UnitEnable: 1;
unsigned32 ShadeMode: 1;
unsigned32 pad0: 30;
} __Permedia2ColorDDAModeFmat;
#endif
/*
** Permedia 2 Texture Application, Fog and
** Alpha Blend Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 8;
signed32 Integer: 2;
unsigned32 Fraction: 19;
unsigned32 pad0: 3;
} __Permedia2FogFmat;
#else
typedef struct {
unsigned32 pad0: 3;
unsigned32 Fraction: 19;
signed32 Integer: 2;
unsigned32 pad1: 8;
} __Permedia2FogFmat;
#endif
typedef __Permedia2FogFmat __Permedia2FStartFmat;
typedef __Permedia2FogFmat __Permedia2dFdxFmat;
typedef __Permedia2FogFmat __Permedia2dFdyDomFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 29;
unsigned32 FogTest: 1;
unsigned32 pad0: 1;
unsigned32 FogEnable: 1;
} __Permedia2FogModeFmat;
#else
typedef struct {
unsigned32 FogEnable: 1;
unsigned32 pad0: 1;
unsigned32 FogTest: 1;
unsigned32 pad1: 29;
} __Permedia2FogModeFmat;
#endif
typedef __Permedia2ColorFmat __Permedia2FogColorFmat;
typedef __Permedia2ColorFmat __Permedia2TexelFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 25;
unsigned32 KsDDA: 1;
unsigned32 KdDDA: 1;
unsigned32 TextureType: 1;
unsigned32 ApplicationMode: 3;
unsigned32 TextureEnable: 1;
} __Permedia2TextureColorModeFmat;
#else
typedef struct {
unsigned32 TextureEnable: 1;
unsigned32 ApplicationMode: 3;
unsigned32 TextureType: 1;
unsigned32 KdDDA: 1;
unsigned32 KsDDA: 1;
unsigned32 pad0: 25;
} __Permedia2TextureColorModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad2: 13;
unsigned32 AlphaConversion: 1;
unsigned32 ColorConversion: 1;
unsigned32 ColorFormatExtension: 1;
unsigned32 pad1: 1;
unsigned32 BlendType: 1;
unsigned32 ColorOrder: 1;
unsigned32 NoAlphaBuffer: 1;
unsigned32 ColorFormat: 4;
unsigned32 DestinationBlend: 3;
unsigned32 SourceBlend: 4;
unsigned32 AlphaBlendEnable: 1;
} __Permedia2AlphaBlendModeFmat;
#else
typedef struct {
unsigned32 AlphaBlendEnable: 1;
unsigned32 SourceBlend: 4;
unsigned32 DestinationBlend: 3;
unsigned32 ColorFormat: 4;
unsigned32 NoAlphaBuffer: 1;
unsigned32 ColorOrder: 1;
unsigned32 BlendType: 1;
unsigned32 pad1: 1;
unsigned32 ColorFormatExtension: 1;
unsigned32 ColorConversion: 1;
unsigned32 AlphaConversion: 1;
unsigned32 pad2: 13;
} __Permedia2AlphaBlendModeFmat;
#endif
/*
** Permedia 2 Texture Address Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
signed32 Integer: 12;
unsigned32 Fraction: 18;
unsigned32 pad1: 2;
} __Permedia2STFmat;
#else
typedef struct {
unsigned32 pad1: 2;
unsigned32 Fraction: 18;
signed32 Integer: 12;
} __Permedia2STFmat;
#endif
typedef __Permedia2STFmat __Permedia2SStartFmat;
typedef __Permedia2STFmat __Permedia2TStartFmat;
typedef __Permedia2STFmat __Permedia2dSdxFmat;
typedef __Permedia2STFmat __Permedia2dTdxFmat;
typedef __Permedia2STFmat __Permedia2dSdyDomFmat;
typedef __Permedia2STFmat __Permedia2dTdyDomFmat;
#if BIG_ENDIAN == 1
typedef struct {
signed32 Integer: 2;
unsigned32 Fraction: 27;
unsigned32 pad0: 3;
} __Permedia2QFmat;
#else
typedef struct {
unsigned32 pad0: 3;
unsigned32 Fraction: 27;
signed32 Integer: 2;
} __Permedia2QFmat;
#endif
typedef __Permedia2QFmat __Permedia2QStartFmat;
typedef __Permedia2QFmat __Permedia2dQdxFmat;
typedef __Permedia2QFmat __Permedia2dQdyDomFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 TLoMagnitude: 12;
unsigned32 SSign: 1;
unsigned32 SMagnitude: 19;
} __Permedia2TextureAddressFmat0;
#else
typedef struct {
unsigned32 SMagnitude: 19;
unsigned32 SSign: 1;
unsigned32 TLoMagnitude: 12;
} __Permedia2TextureAddressFmat0;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 24;
unsigned32 TSign: 1;
unsigned32 THiMagnitude: 7;
} __Permedia2TextureAddressFmat1;
#else
typedef struct {
unsigned32 THiMagnitude: 7;
unsigned32 TSign: 1;
unsigned32 pad0: 24;
} __Permedia2TextureAddressFmat1;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 28;
unsigned32 DeltaFormat: 1;
unsigned32 Fast: 1;
unsigned32 PerspectiveCorrection: 1;
unsigned32 Enable: 1;
} __Permedia2TextureAddrModeFmat;
#else
typedef struct {
unsigned32 Enable: 1;
unsigned32 PerspectiveCorrection: 1;
unsigned32 Fast: 1;
unsigned32 DeltaFormat: 1;
unsigned32 pad0: 28;
} __Permedia2TextureAddrModeFmat;
#endif
/*
** Permedia 2 Texture Read Registers
*/
typedef struct {
#if BIG_ENDIAN == 1
unsigned32 TCoeff : 8;
unsigned32 Pad1 : 7;
unsigned32 SwapT : 1;
unsigned32 SCoeff : 8;
unsigned32 Pad0 : 7;
unsigned32 SwapS : 1;
#else
unsigned32 SwapS : 1;
unsigned32 Pad0 : 7;
unsigned32 SCoeff : 8;
unsigned32 SwapT : 1;
unsigned32 Pad1 : 7;
unsigned32 TCoeff : 8;
#endif
} __Permedia2TextureReadPadFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad2: 7;
unsigned32 PackedData: 1;
unsigned32 pad1: 6;
unsigned32 FilterMode: 1;
unsigned32 Height: 4;
unsigned32 Width: 4;
unsigned32 pad0: 4;
unsigned32 TWrapMode: 2;
unsigned32 SWrapMode: 2;
unsigned32 Enable: 1;
} __Permedia2TextureReadModeFmat;
#else
typedef struct {
unsigned32 Enable: 1;
unsigned32 SWrapMode: 2;
unsigned32 TWrapMode: 2;
unsigned32 pad0: 4;
unsigned32 Width: 4;
unsigned32 Height: 4;
unsigned32 FilterMode: 1;
unsigned32 pad1: 6;
unsigned32 PackedData: 1;
unsigned32 pad2: 7;
} __Permedia2TextureReadModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad2: 10;
unsigned32 TexelSize: 3;
unsigned32 pad1: 1;
unsigned32 SubPatchMode: 1;
unsigned32 WindowOrigin: 1;
unsigned32 pad0: 7;
unsigned32 PackedPP: 9;
} __Permedia2TextureMapFormatFmat;
#else
typedef struct {
unsigned32 PackedPP: 9;
unsigned32 pad0: 7;
unsigned32 WindowOrigin: 1;
unsigned32 SubPatchMode: 1;
unsigned32 pad1: 1;
unsigned32 TexelSize: 3;
unsigned32 pad2: 10;
} __Permedia2TextureMapFormatFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 22;
unsigned32 SpanFormat: 1;
unsigned32 AlphaMap: 2;
unsigned32 TextureFormatExtension: 1;
unsigned32 ColorOrder: 1;
unsigned32 NoAlphaBuffer: 1;
unsigned32 TextureFormat: 4;
} __Permedia2TextureDataFormatFmat;
#else
typedef struct {
unsigned32 TextureFormat: 4;
unsigned32 NoAlphaBuffer: 1;
unsigned32 ColorOrder: 1;
unsigned32 TextureFormatExtension: 1;
unsigned32 AlphaMap: 2;
unsigned32 SpanFormat: 1;
unsigned32 pad0: 22;
} __Permedia2TextureDataFormatFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 8;
unsigned32 Addr: 24;
} __Permedia2TexelLUTAddressFmat, __Permedia2TexelLUTID;
#else
typedef struct {
unsigned32 Addr: 24;
unsigned32 pad0: 8;
} __Permedia2TexelLUTAddressFmat, __Permedia2TexelLUTID;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 1;
unsigned32 Access: 1;
unsigned32 pad1: 6;
unsigned32 Addr: 24;
} __Permedia2TextureBaseAddressFmat;
#else
typedef struct {
unsigned32 Addr: 24;
unsigned32 pad1: 6;
unsigned32 Access: 1;
unsigned32 pad0: 1;
} __Permedia2TextureBaseAddressFmat;
#endif
typedef __Permedia2UnsignedIntegerFmat __Permedia2RawDataFmat[2];
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 Alpha: 8;
unsigned32 V: 8;
unsigned32 U: 8;
unsigned32 Y: 8;
} __Permedia2TexelYUVFmat;
#else
typedef struct {
unsigned32 Y: 8;
unsigned32 U: 8;
unsigned32 V: 8;
unsigned32 Alpha: 8;
} __Permedia2TexelYUVFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 20;
unsigned32 PixelsPerEntry: 2;
unsigned32 LUTOffset: 8;
unsigned32 DirectIndex: 1;
unsigned32 Enable: 1;
} __Permedia2TexelLUTModeFmat;
#else
typedef struct {
unsigned32 Enable: 1;
unsigned32 DirectIndex: 1;
unsigned32 LUTOffset: 8;
unsigned32 PixelsPerEntry: 2;
unsigned32 pad0: 20;
} __Permedia2TexelLUTModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 TCoeff: 8;
unsigned32 pad1: 7;
unsigned32 SwapT: 1;
unsigned32 SCoeff: 8;
unsigned32 pad0: 7;
unsigned32 SwapS: 1;
} __Permedia2Interp0Fmat;
#else
typedef struct {
unsigned32 SwapS: 1;
unsigned32 pad0: 7;
unsigned32 SCoeff: 8;
unsigned32 SwapT: 1;
unsigned32 pad1: 7;
unsigned32 TCoeff: 8;
} __Permedia2Interp0Fmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 24;
unsigned32 Offset: 8;
} __Permedia2TexelLUTIndexFmat;
#else
typedef struct {
unsigned32 Offset: 8;
unsigned32 pad0: 24;
} __Permedia2TexelLUTIndexFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 15;
unsigned32 Count: 9;
unsigned32 Index: 8;
} __Permedia2TexelLUTTransferFmat;
#else
typedef struct {
unsigned32 Index: 8;
unsigned32 Count: 9;
unsigned32 pad0: 15;
} __Permedia2TexelLUTTransferFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 Valid: 1;
unsigned32 pad0: 7;
unsigned32 Address: 24;
} __Permedia2TextureIDFmat;
#else
typedef struct {
unsigned32 Address: 24;
unsigned32 pad0: 7;
unsigned32 Valid: 1;
} __Permedia2TextureIDFmat;
#endif
typedef __Permedia2ColorFmat __Permedia2AlphaMapUpperBoundFmat;
typedef __Permedia2ColorFmat __Permedia2AlphaMapLowerBoundFmat;
/*
** Permedia 2 YUV-REG Registers
*/
typedef __Permedia2ColorFmat __Permedia2ChromaUpperBoundFmat;
typedef __Permedia2ColorFmat __Permedia2ChromaLowerBoundFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 26;
unsigned32 TexelDisableUpdate:1;
unsigned32 RejectTexel: 1;
unsigned32 TestData: 1;
unsigned32 TestMode: 2;
unsigned32 Enable: 1;
} __Permedia2YUVModeFmat;
#else
typedef struct {
unsigned32 Enable: 1;
unsigned32 TestMode: 2;
unsigned32 TestData: 1;
unsigned32 RejectTexel: 1;
unsigned32 TexelDisableUpdate:1;
unsigned32 pad0: 26;
} __Permedia2YUVModeFmat;
#endif
/*
** Permedia 2 Localbuffer Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 15;
unsigned32 Stencil: 1;
unsigned32 Depth: 16;
} __Permedia2LBDataFmat;
#else
typedef struct {
unsigned32 Depth: 16;
unsigned32 Stencil: 1;
unsigned32 pad0: 15;
} __Permedia2LBDataFmat;
#endif
typedef __Permedia2LBDataFmat __Permedia2LBWriteDataFmat;
typedef __Permedia2LBDataFmat __Permedia2LBSourceDataFmat;
typedef __Permedia2LBDataFmat __Permedia2LBCancelWriteFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 28;
unsigned32 StencilWidth: 2;
unsigned32 DepthWidth: 2;
} __Permedia2LBFormatFmat;
#else
typedef struct {
unsigned32 DepthWidth: 2;
unsigned32 StencilWidth: 2;
unsigned32 pad0: 28;
} __Permedia2LBFormatFmat;
#endif
typedef __Permedia2LBFormatFmat __Permedia2LBReadFormatFmat;
typedef __Permedia2LBFormatFmat __Permedia2LBWriteFormatFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 12;
unsigned32 PatchMode: 1;
unsigned32 WindowOrigin: 1;
unsigned32 DataType: 2;
unsigned32 pad0: 5;
unsigned32 ReadDestinationEnable: 1;
unsigned32 ReadSourceEnable: 1;
unsigned32 PackedPP: 9;
} __Permedia2LBReadModeFmat;
#else
typedef struct {
unsigned32 PackedPP: 9;
unsigned32 ReadSourceEnable: 1;
unsigned32 ReadDestinationEnable: 1;
unsigned32 pad0: 5;
unsigned32 DataType: 2;
unsigned32 WindowOrigin: 1;
unsigned32 PatchMode: 1;
unsigned32 pad1: 12;
} __Permedia2LBReadModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 12;
unsigned32 PatchMode: 1;
unsigned32 WindowOrigin: 1;
unsigned32 pad0: 9;
unsigned32 PackedPP: 9;
} __Permedia2LBWriteConfigFmat;
#else
typedef struct {
unsigned32 PackedPP: 9;
unsigned32 pad0: 9;
unsigned32 WindowOrigin: 1;
unsigned32 PatchMode: 1;
unsigned32 pad1: 12;
} __Permedia2LBWriteConfigFmat;
#endif
typedef __Permedia2UnsignedIntegerFmat __Permedia2LBReadPadFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 31;
unsigned32 WriteEnable: 1;
} __Permedia2LBWriteModeFmat;
#else
typedef struct {
unsigned32 WriteEnable: 1;
unsigned32 pad0: 31;
} __Permedia2LBWriteModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 8;
unsigned32 Addr: 24;
} __Permedia2LBAddressFmat;
#else
typedef struct {
unsigned32 Addr: 24;
unsigned32 pad0: 8;
} __Permedia2LBAddressFmat;
#endif
typedef __Permedia2LBAddressFmat __Permedia2LBWindowBaseFmat;
typedef __Permedia2LBAddressFmat __Permedia2LBSourceOffsetFmat;
typedef __Permedia2LBAddressFmat __Permedia2LBWriteBaseFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 31;
unsigned32 Stencil: 1;
} __Permedia2LBStencilFmat;
#else
typedef struct {
unsigned32 Stencil: 1;
unsigned32 pad0: 31;
} __Permedia2LBStencilFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 16;
unsigned32 Depth: 16;
} __Permedia2LBDepthFmat;
#else
typedef struct {
unsigned32 Depth: 16;
unsigned32 pad0: 16;
} __Permedia2LBDepthFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 31;
unsigned32 Data: 1;
} __Permedia2StencilFmat;
#else
typedef struct {
unsigned32 Data: 1;
unsigned32 pad0: 31;
} __Permedia2StencilFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 16;
unsigned32 Data: 16;
} __Permedia2DepthFmat;
#else
typedef struct {
unsigned32 Data: 16;
unsigned32 pad0: 16;
} __Permedia2DepthFmat;
#endif
/*
** Permedia 2 Depth and Stencil Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad2: 13;
unsigned32 DisableLBUpdate: 1;
unsigned32 pad1: 13;
unsigned32 LBUpdateSource: 1;
unsigned32 ForceLBUpdate: 1;
unsigned32 pad0: 3;
} __Permedia2WindowFmat;
#else
typedef struct {
unsigned32 pad0: 3;
unsigned32 ForceLBUpdate: 1;
unsigned32 LBUpdateSource: 1;
unsigned32 pad1: 13;
unsigned32 DisableLBUpdate: 1;
unsigned32 pad2: 13;
} __Permedia2WindowFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad2: 15;
unsigned32 WriteMask: 1;
unsigned32 pad1: 7;
unsigned32 CompareMask: 1;
unsigned32 pad0: 7;
unsigned32 ReferenceValue: 1;
} __Permedia2StencilDataFmat;
#else
typedef struct {
unsigned32 ReferenceValue: 1;
unsigned32 pad0: 7;
unsigned32 CompareMask: 1;
unsigned32 pad1: 7;
unsigned32 WriteMask: 1;
unsigned32 pad2: 15;
} __Permedia2StencilDataFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 17;
unsigned32 StencilSource: 2;
unsigned32 CompareFunction: 3;
unsigned32 SFail: 3;
unsigned32 DPFail: 3;
unsigned32 DPPass: 3;
unsigned32 UnitEnable: 1;
} __Permedia2StencilModeFmat;
#else
typedef struct {
unsigned32 UnitEnable: 1;
unsigned32 DPPass: 3;
unsigned32 DPFail: 3;
unsigned32 SFail: 3;
unsigned32 CompareFunction: 3;
unsigned32 StencilSource: 2;
unsigned32 pad0: 17;
} __Permedia2StencilModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 25;
unsigned32 CompareMode: 3;
unsigned32 NewDepthSource: 2;
unsigned32 WriteMask: 1;
unsigned32 UnitEnable: 1;
} __Permedia2DepthModeFmat;
#else
typedef struct {
unsigned32 UnitEnable: 1;
unsigned32 WriteMask: 1;
unsigned32 NewDepthSource: 2;
unsigned32 CompareMode: 3;
unsigned32 pad0: 25;
} __Permedia2DepthModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 15;
signed32 Z: 17;
} __Permedia2ZUFmat;
#else
typedef struct {
signed32 Z: 17;
unsigned32 pad0: 15;
} __Permedia2ZUFmat;
#endif
typedef __Permedia2ZUFmat __Permedia2ZStartUFmat;
typedef __Permedia2ZUFmat __Permedia2dZdxUFmat;
typedef __Permedia2ZUFmat __Permedia2dZdyDomUFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 Z: 11;
unsigned32 pad0: 21;
} __Permedia2ZLFmat;
#else
typedef struct {
unsigned32 pad0: 21;
unsigned32 Z: 11;
} __Permedia2ZLFmat;
#endif
typedef __Permedia2ZLFmat __Permedia2ZStartLFmat;
typedef __Permedia2ZLFmat __Permedia2dZdxLFmat;
typedef __Permedia2ZLFmat __Permedia2dZdyDomLFmat;
/*
** Permedia 2 Framebuffer Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 8;
unsigned32 Addr: 24;
} __Permedia2FBAddressFmat;
#else
typedef struct {
unsigned32 Addr: 24;
unsigned32 pad0: 8;
} __Permedia2FBAddressFmat;
#endif
typedef __Permedia2FBAddressFmat __Permedia2FBBaseAddressFmat;
typedef __Permedia2FBAddressFmat __Permedia2FBPixelOffsetFmat;
typedef __Permedia2FBAddressFmat __Permedia2FBSourceOffsetFmat;
typedef __Permedia2FBAddressFmat __Permedia2FBWindowBaseFmat;
typedef __Permedia2FBAddressFmat __Permedia2FBWriteBaseFmat;
typedef __Permedia2FBAddressFmat __Permedia2FBSourceBaseFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad3: 5;
unsigned32 PatchMode: 2;
unsigned32 pad2: 2;
signed32 RelativeOffset: 3;
unsigned32 PackedData: 1;
unsigned32 PatchEnable: 1;
unsigned32 TexelInhibit: 1;
unsigned32 WindowOrigin: 1;
unsigned32 DataType: 1;
unsigned32 pad0: 4;
unsigned32 ReadDestinationEnable: 1;
unsigned32 ReadSourceEnable: 1;
unsigned32 PackedPP: 9;
} __Permedia2FBReadModeFmat;
#else
typedef struct {
unsigned32 PackedPP: 9;
unsigned32 ReadSourceEnable: 1;
unsigned32 ReadDestinationEnable: 1;
unsigned32 pad0: 4;
unsigned32 DataType: 1;
unsigned32 WindowOrigin: 1;
unsigned32 TexelInhibit: 1;
unsigned32 PatchEnable: 1;
unsigned32 PackedData: 1;
signed32 RelativeOffset: 3;
unsigned32 pad2: 2;
unsigned32 PatchMode: 2;
unsigned32 pad3: 5;
} __Permedia2FBReadModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad3: 5;
unsigned32 PatchMode: 2;
unsigned32 pad2: 2;
signed32 RelativeOffset: 3;
unsigned32 PackedData: 1;
unsigned32 PatchEnable: 1;
unsigned32 pad1: 1;
unsigned32 WindowOrigin: 1;
unsigned32 pad0: 7;
unsigned32 PackedPP: 9;
} __Permedia2FBWriteConfigFmat;
#else
typedef struct {
unsigned32 PackedPP: 9;
unsigned32 pad0: 7;
unsigned32 WindowOrigin: 1;
unsigned32 pad1: 1;
unsigned32 PatchEnable: 1;
unsigned32 PackedData: 1;
signed32 RelativeOffset: 3;
unsigned32 pad2: 2;
unsigned32 PatchMode: 2;
unsigned32 pad3: 5;
} __Permedia2FBWriteConfigFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 29;
unsigned32 PixelSize: 3;
} __Permedia2FBPixelFmat;
#else
typedef struct {
unsigned32 PixelSize: 3;
unsigned32 pad1: 29;
} __Permedia2FBPixelFmat;
#endif
typedef __Permedia2FBPixelFmat __Permedia2FBReadPixelFmat;
typedef __Permedia2FBPixelFmat __Permedia2FBWritePixelFmat;
typedef __Permedia2UnsignedIntegerFmat __Permedia2FBReadPadFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 28;
unsigned32 UpLoadData: 1;
unsigned32 pad0: 2;
unsigned32 UnitEnable: 1;
} __Permedia2FBWriteModeFmat;
#else
typedef struct {
unsigned32 UnitEnable: 1;
unsigned32 pad0: 2;
unsigned32 UpLoadData: 1;
unsigned32 pad1: 28;
} __Permedia2FBWriteModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 28;
signed32 RelativeOffset: 3;
unsigned32 DataPacking: 1;
} __Permedia2FBPackedDataModeFmat;
#else
typedef struct {
unsigned32 DataPacking: 1;
signed32 RelativeOffset: 3;
unsigned32 pad0: 28;
} __Permedia2FBPackedDataModeFmat;
#endif
typedef __Permedia2UnsignedIntegerFmat __Permedia2FBFmat;
typedef __Permedia2FBFmat __Permedia2FBColorFmat;
typedef __Permedia2FBFmat __Permedia2FBDataFmat;
typedef __Permedia2FBFmat __Permedia2FBSourceDataFmat;
typedef __Permedia2UnsignedIntegerFmat __Permedia2FBHardwareWriteMaskFmat;
typedef __Permedia2UnsignedIntegerFmat __Permedia2FBBlockColorFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 10;
unsigned32 Offset: 22;
} __Permedia2TextureDownloadOffsetFmat;
#else
typedef struct {
unsigned32 Offset: 22;
unsigned32 pad0: 10;
} __Permedia2TextureDownloadOffsetFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad: 22;
unsigned32 LogicOpLogicOp: 4;
unsigned32 LogicOpEnable: 1;
unsigned32 ColorDDAModeEnable: 1;
unsigned32 FBWriteModeEnable: 1;
unsigned32 FBReadModePackedData: 1;
unsigned32 FBReadModeReadDestination: 1;
unsigned32 FBReadModeReadSource: 1;
} __Permedia2ConfigFmat;
#else
typedef struct {
unsigned32 FBReadModeReadSource: 1;
unsigned32 FBReadModeReadDestination: 1;
unsigned32 FBReadModePackedData: 1;
unsigned32 FBWriteModeEnable: 1;
unsigned32 ColorDDAModeEnable: 1;
unsigned32 LogicOpEnable: 1;
unsigned32 LogicOpLogicOp: 4;
unsigned32 pad: 22;
} __Permedia2ConfigFmat;
#endif
/*
** Permedia 2 Dither Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 15;
unsigned32 ColorFormatExtension: 1;
unsigned32 pad0: 2;
unsigned32 ForceAlpha: 2;
unsigned32 DitherMethod: 1;
unsigned32 ColorOrder: 1;
unsigned32 YOffset: 2;
unsigned32 XOffset: 2;
unsigned32 ColorFormat: 4;
unsigned32 DitherEnable: 1;
unsigned32 UnitEnable: 1;
} __Permedia2DitherModeFmat;
#else
typedef struct {
unsigned32 UnitEnable: 1;
unsigned32 DitherEnable: 1;
unsigned32 ColorFormat: 4;
unsigned32 XOffset: 2;
unsigned32 YOffset: 2;
unsigned32 ColorOrder: 1;
unsigned32 DitherMethod: 1;
unsigned32 ForceAlpha: 2;
unsigned32 pad0: 2;
unsigned32 ColorFormatExtension: 1;
unsigned32 pad1: 15;
} __Permedia2DitherModeFmat;
#endif
/*
** Permedia 2 Logic Ops and WriteMask Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 26;
unsigned32 UseConstantFBWriteData: 1;
unsigned32 LogicalOp: 4;
unsigned32 LogicalOpEnable: 1;
} __Permedia2LogicalOpModeFmat;
#else
typedef struct {
unsigned32 LogicalOpEnable: 1;
unsigned32 LogicalOp: 4;
unsigned32 UseConstantFBWriteData: 1;
unsigned32 pad0: 26;
} __Permedia2LogicalOpModeFmat;
#endif
typedef __Permedia2FBFmat __Permedia2FBWriteDataFmat;
typedef __Permedia2FBFmat __Permedia2FBSoftwareWriteMaskFmat;
/*
** Permedia 2 Host Out Registers
*/
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 16;
unsigned32 Remainder: 2;
unsigned32 Statistics: 2;
unsigned32 Synchronization: 2;
unsigned32 Color: 2;
unsigned32 Stencil: 2;
unsigned32 Depth: 2;
unsigned32 Passive: 2;
unsigned32 Active: 2;
} __Permedia2FilterModeFmat;
#else
typedef struct {
unsigned32 Active: 2;
unsigned32 Passive: 2;
unsigned32 Depth: 2;
unsigned32 Stencil: 2;
unsigned32 Color: 2;
unsigned32 Synchronization: 2;
unsigned32 Statistics: 2;
unsigned32 Remainder: 2;
unsigned32 pad0: 16;
} __Permedia2FilterModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 26;
unsigned32 Spans: 1;
unsigned32 CompareFunction: 1;
unsigned32 PassiveSteps: 1;
unsigned32 ActiveSteps: 1;
unsigned32 StatType: 1;
unsigned32 Enable: 1;
} __Permedia2StatisticModeFmat;
#else
typedef struct {
unsigned32 Enable: 1;
unsigned32 StatType: 1;
unsigned32 ActiveSteps: 1;
unsigned32 PassiveSteps: 1;
unsigned32 CompareFunction: 1;
unsigned32 Spans: 1;
unsigned32 pad0: 26;
} __Permedia2StatisticModeFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 InterruptEnable: 1;
unsigned32 pad0: 31;
} __Permedia2SyncFmat;
#else
typedef struct {
unsigned32 pad0: 31;
unsigned32 InterruptEnable: 1;
} __Permedia2SyncFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad1: 4;
signed32 Y: 12;
unsigned32 pad0: 4;
signed32 X: 12;
} __Permedia2MinRegionFmat,
__Permedia2MaxRegionFmat,
__Permedia2MinHitRegionFmat,
__Permedia2MaxHitRegionFmat;
#else
typedef struct {
signed32 X: 12;
unsigned32 pad0: 4;
signed32 Y: 12;
unsigned32 pad1: 4;
} __Permedia2MinRegionFmat,
__Permedia2MaxRegionFmat,
__Permedia2MinHitRegionFmat,
__Permedia2MaxHitRegionFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 30;
unsigned32 BusyFlag: 1;
unsigned32 PickFlag: 1;
} __Permedia2PickResultFmat;
#else
typedef struct {
unsigned32 PickFlag: 1;
unsigned32 BusyFlag: 1;
unsigned32 pad0: 30;
} __Permedia2PickResultFmat;
#endif
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad0: 12;
unsigned32 screenbase: 20;
} __Permedia2SuspendUntilFrameBlankFmat;
#else
typedef struct {
unsigned32 screenbase: 20;
unsigned32 pad0: 12;
} __Permedia2SuspendUntilFrameBlankFmat;
#endif
typedef __Permedia2UnsignedIntegerFmat __Permedia2ResetPickResultFmat;
#if BIG_ENDIAN == 1
typedef struct {
unsigned32 pad: 31;
unsigned32 value: 1;
} __Permedia2PCITextureCacheFmat;
#else
typedef struct {
unsigned32 value: 1;
unsigned32 pad: 31;
} __Permedia2PCITextureCacheFmat;
#endif
typedef __Permedia2PCITextureCacheFmat __Permedia2PCIReadTextureCacheFmat;
typedef __Permedia2PCITextureCacheFmat __Permedia2PCIWriteTextureCacheFmat;
#endif /* P2REG_H */