|
version 1.1.2.9, 1997/07/18 05:31:29
|
version 1.1.2.14, 1997/07/21 05:32:29
|
|
|
|
| /* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.1.2.8 1997/07/17 03:23:05 dawes Exp $ */ |
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.1.2.13 1997/07/20 13:29:30 dawes Exp $ */ |
| | |
| /* | /* |
| * Copyright (c) 1997 by The XFree86 Project, Inc. | * Copyright (c) 1997 by The XFree86 Project, Inc. |
|
|
|
| #include "input.h" | #include "input.h" |
| #include "scrnintstr.h" | #include "scrnintstr.h" |
| #include "xf86Option.h" | #include "xf86Option.h" |
| |
#include "xf86Module.h" |
| | |
| | |
| /* Video mode flags */ | /* Video mode flags */ |
|
|
|
| V_CLKDIV2 = 0x4000 | V_CLKDIV2 = 0x4000 |
| } ModeFlags; | } ModeFlags; |
| | |
| |
/* These are possible return values for xf86CheckMode() and ValidMode() */ |
| |
typedef enum { |
| |
MODE_OK = 0, /* Mode OK */ |
| |
MODE_HSYNC, /* hsync out of range */ |
| |
MODE_VSYNC, /* vsync out of range */ |
| |
MODE_BAD_WIDTH, /* requires an unsupported linepitch */ |
| |
MODE_NOMODE, /* no mode with a maching name */ |
| |
MODE_NO_INTERLACE, /* interlaced mode not supported */ |
| |
MODE_NO_DBLESCAN, /* doublescan mode not supported */ |
| |
MODE_MEM, /* insufficient video memory */ |
| |
MODE_VIRTUAL, /* mode too large for specified virtual size */ |
| |
MODE_NOCLOCK, /* no fixed clock available */ |
| |
MODE_CLOCK_HIGH, /* clock required is too high */ |
| |
MODE_CLOCK_LOW, /* clock required is too low */ |
| |
MODE_CLOCK_RANGE, /* clock/mode isn't in a ClockRange */ |
| |
MODE_BAD_HVALUE, /* horizontal timing was out of range */ |
| |
MODE_BAD_VVALUE, /* vertical timing was out of range */ |
| |
MODE_BAD, /* unspecified reason */ |
| |
MODE_ERROR = -1 /* error condition */ |
| |
} ModeStatus; |
| |
|
| /* Video mode */ | /* Video mode */ |
| | |
| typedef struct _DisplayModeRec { | typedef struct _DisplayModeRec { |
| struct _DisplayModeRec * prev; | struct _DisplayModeRec * prev; |
| struct _DisplayModeRec * next; | struct _DisplayModeRec * next; |
| char * name; /* identifier for the mode */ | char * name; /* identifier for the mode */ |
| |
ModeStatus status; |
| | |
| /* These are the values that the user sees/provides */ | /* These are the values that the user sees/provides */ |
| int Clock; /* pixel clock freq */ | int Clock; /* pixel clock freq */ |
|
|
|
| int VSyncStart; | int VSyncStart; |
| int VSyncEnd; | int VSyncEnd; |
| int VTotal; | int VTotal; |
| ModeFlags Flags; |
int Flags; |
| | |
| /* These are the values the hardware uses */ | /* These are the values the hardware uses */ |
| int ClockIndex; | int ClockIndex; |
|
|
|
| struct x_ClockRange *next; | struct x_ClockRange *next; |
| int minClock; | int minClock; |
| int maxClock; | int maxClock; |
| |
int clockIndex; /* -1 for programmable clocks */ |
| Bool interlaceAllowed; | Bool interlaceAllowed; |
| Bool doubleScanAllowed; | Bool doubleScanAllowed; |
| } ClockRange, *ClockRangePtr; | } ClockRange, *ClockRangePtr; |
|
|
|
| int tmpIndex; /* initial number assigned to | int tmpIndex; /* initial number assigned to |
| * this screen before | * this screen before |
| * finalising the number of | * finalising the number of |
| * availalbe screens */ |
* available screens */ |
| int bitsPerPixel; /* bpp for default visual */ | int bitsPerPixel; /* bpp for default visual */ |
| int depth; /* depth of default visual */ | int depth; /* depth of default visual */ |
| xrgb weight; /* r/g/b weights */ | xrgb weight; /* r/g/b weights */ |
| |
xrgb mask; /* rgb masks */ |
| |
int rgbBits; /* Number of bits in r/g/b */ |
| float redGamma; /* Gamma values */ | float redGamma; /* Gamma values */ |
| float blueGamma; /* Gamma values */ | float blueGamma; /* Gamma values */ |
| float greenGamma; /* Gamma values */ | float greenGamma; /* Gamma values */ |
| int defaultVisual; /* default visual class */ | int defaultVisual; /* default visual class */ |
| |
int maxHValue; /* max horizontal timing */ |
| |
int maxVValue; /* max vertical timing value */ |
| int virtualX; /* Virtual width */ | int virtualX; /* Virtual width */ |
| int virtualY; /* Virtual height */ | int virtualY; /* Virtual height */ |
| int displayWidth; /* memory pitch */ | int displayWidth; /* memory pitch */ |
|
|
|
| int frameX1; | int frameX1; |
| int frameY1; | int frameY1; |
| int zoomLocked; /* Disallow mode changes */ | int zoomLocked; /* Disallow mode changes */ |
| DisplayModePtr modes; /* list of modes */ |
DisplayModePtr modePool; /* list of compatible modes */ |
| |
DisplayModePtr modes; /* list of actual modes */ |
| DisplayModePtr currentMode; /* current mode | DisplayModePtr currentMode; /* current mode |
| /* This was previously |
* This was previously |
| * overloaded with the modes | * overloaded with the modes |
| * field, which is a pointer | * field, which is a pointer |
| * into a circular list */ | * into a circular list */ |
|
|
|
| pointer driverPrivate; /* Driver private area */ | pointer driverPrivate; /* Driver private area */ |
| int numPrivates; /* Number of privates */ | int numPrivates; /* Number of privates */ |
| DevUnion * privates; /* Other privates can hook in | DevUnion * privates; /* Other privates can hook in |
| /* here */ |
* here */ |
| | |
| char ** requiredModules; /* List of modules needed */ | char ** requiredModules; /* List of modules needed */ |
| int numRequiredModules; | int numRequiredModules; |
|
|
|
| /* Some of these may be moved out of here into the driver private area */ | /* Some of these may be moved out of here into the driver private area */ |
| | |
| OFlagSet options; /* Option flags */ | OFlagSet options; /* Option flags */ |
| OFlagSet clockOptions; /* Clock option flags */ |
|
| OFlagSet xconfigFlag; /* Flags indicating which |
|
| * parameter values were |
|
| * set from the config file */ |
|
| char * chipset; /* chipset name */ | char * chipset; /* chipset name */ |
| char * ramdac; /* ramdac name */ | char * ramdac; /* ramdac name */ |
| |
char * clockchip; /* clock name */ |
| |
Bool progClock; /* clock is programmable */ |
| int dacSpeeds[MAXDACSPEEDS];/* list of clock limits */ | int dacSpeeds[MAXDACSPEEDS];/* list of clock limits */ |
| int numClocks; /* number of clocks */ | int numClocks; /* number of clocks */ |
| int clock[MAXCLOCKS]; /* list of clock frequencies */ | int clock[MAXCLOCKS]; /* list of clock frequencies */ |
|
|
|
| unsigned long speedup; /* Use SpeedUp code */ | unsigned long speedup; /* Use SpeedUp code */ |
| #endif | #endif |
| int memClk; /* memory clock */ | int memClk; /* memory clock */ |
| |
int textClockFreq; /* clock of text mode */ |
| | |
| #if 0 /* only used by the mono VGA driver */ |
|
| Bool bankedMono; | Bool bankedMono; |
| xrgb blackColour; | xrgb blackColour; |
| xrgb whiteColour; | xrgb whiteColour; |
| #endif |
|
| | |
| #if 0 /* Out of date (obsoleted with the new parser code) */ | #if 0 /* Out of date (obsoleted with the new parser code) */ |
| int * validTokens; | int * validTokens; |
|
|
|
| | |
| int chipID; | int chipID; |
| int chipRev; | int chipRev; |
| int textClockFreq; |
|
| | |
| /* This is here to allow for DGA to be enabled on a single screen. */ | /* This is here to allow for DGA to be enabled on a single screen. */ |
| Bool vtSema; | Bool vtSema; |
|
|
|
| unsigned long *physBase, | unsigned long *physBase, |
| int *physSize, int *memSize); | int *physSize, int *memSize); |
| Bool (*DGASetDirectMode)(int scrnIndex, Bool on); | Bool (*DGASetDirectMode)(int scrnIndex, Bool on); |
| Bool (*DGAGetDirectMode)(int scrnIndex); |
|
| void (*DGASetBank)(int scrnIndex, int bank, int flags); | void (*DGASetBank)(int scrnIndex, int bank, int flags); |
| | |
| funcPointer reservedFuncs[NUM_RESERVED_FUNCS]; | funcPointer reservedFuncs[NUM_RESERVED_FUNCS]; |
|
|
|
| char * name; /* pointer to the LOWERCASED name */ | char * name; /* pointer to the LOWERCASED name */ |
| } SymTabRec, *SymTabPtr; | } SymTabRec, *SymTabPtr; |
| | |
| /* These are possible return values for xf86CheckMode() and ValidMode() */ |
|
| typedef enum { |
|
| MODE_OK = 0, /* Mode OK */ |
|
| MODE_HSYNC, /* hsync out of range */ |
|
| MODE_VSYNC, /* vsync out of range */ |
|
| MODE_BAD = 255 /* unspecified reason */ |
|
| } ModeStatus; |
|
| |
|
| /* These are the possible flags for ValidMode */ | /* These are the possible flags for ValidMode */ |
| typedef enum { | typedef enum { |
| MODE_USED, /* this mode is really being used in the */ | MODE_USED, /* this mode is really being used in the */ |
|
|
|
| /* flags for xf86LookupMode */ | /* flags for xf86LookupMode */ |
| typedef enum { | typedef enum { |
| LOOKUP_DEFAULT = 0, /* Use default mode lookup method */ | LOOKUP_DEFAULT = 0, /* Use default mode lookup method */ |
| LOOKUP_BEST_REFRESH = 1, /* Pick modes with best refresh */ |
LOOKUP_BEST_REFRESH, /* Pick modes with best refresh */ |
| LOOKUP_NO_INTERLACED = 2, /* Ignore interlaced modes */ |
LOOKUP_CLOSEST_CLOCK, /* Pick modes with the closest clock */ |
| LOOKUP_FORCE_DEFAULT = 4 /* Force default lookup method */ |
LOOKUP_LIST_ORDER, /* Pick first useful mode in list */ |
| } LookupModeFlags; | } LookupModeFlags; |
| | |
| #define INTERLACE_REFRESH_WEIGHT 1.5 |
/* Flags for driver messages */ |
| |
|
| /* These are the magic numbers that ModuleInit functions can return */ |
|
| typedef enum { | typedef enum { |
| MAGIC_DONE = 0, /* no more init stuff */ |
X_PROBED, /* Value was probed */ |
| MAGIC_LOAD = 1, /* load that module */ |
X_CONFIG, /* Value was given in the config file */ |
| MAGIC_ADD_VIDEO_CHIP_REC = 2, /* add this as vgaVideoChipPtr*/ |
X_DEFAULT, /* Value is a default */ |
| MAGIC_CCD_DO_BITBLT = 3, /* cur.col.depth specific blit*/ |
X_CMDLINE /* Value was given on the command line */ |
| MAGIC_CCD_SCREEN_PRIV_IDX = 4, /* cur.col.depth specific idx*/ |
} MessageType; |
| MAGIC_CCD_XAA_SCREEN_INIT = 5, /* cur.col.depth specific init*/ |
|
| /* don't use these, use MAGIC_LOAD_EXTENSION instead */ |
#define INTERLACE_REFRESH_WEIGHT 1.5 |
| MAGIC_PEX_INIT = 6, /* PEX init function */ |
|
| MAGIC_XIE_INIT = 7, /* XIE init function */ |
|
| |
|
| MAGIC_LOAD_EXTENSION = 8, |
|
| MAGIC_VERSION = 9, /* retrieve version info */ |
|
| /* must be returned as */ |
|
| /* first item from ModuleInit */ |
|
| MAGIC_DONT_CHECK_UNRESOLVED = 10, /* delay checking */ |
|
| MAGIC_GLX_VISUALS_INIT = 11, /* GLX visuals init function */ |
|
| MAGIC_ADD_XINPUT_DEVICE = 12 /* register xinput device */ |
|
| } MagicCallbackCodes; |
|
| | |
| #define LD_RESOLV_IFDONE 0 /* only check if no more | #define LD_RESOLV_IFDONE 0 /* only check if no more |
| delays pending */ | delays pending */ |
| #define LD_RESOLV_NOW 1 /* finish one delay step */ | #define LD_RESOLV_NOW 1 /* finish one delay step */ |
| #define LD_RESOLV_FORCE 2 /* force checking... */ | #define LD_RESOLV_FORCE 2 /* force checking... */ |
| |
|
| #define MODINFOSTRING1 0xef23fdc5 |
|
| #define MODINFOSTRING2 0x10dc023a |
|
| |
|
| #ifndef MODULEVENDORSTRING |
|
| #define MODULEVENDORSTRING "The XFree86 Project" |
|
| #endif |
|
| |
|
| /* this structure is expected to be returned by initfunc by MAGIC_VERSION */ |
|
| typedef struct { |
|
| char * modname; /* name of module, e.g. "foo_drv.o" */ |
|
| char * vendor; /* vendor specific string */ |
|
| CARD32 _modinfo1_; /* constanta MODINFOSTRING1/2 to find */ |
|
| CARD32 _modinfo2_; /* infoarea with a binary editor or sign tool */ |
|
| CARD32 xf86version; /* contains XF86_VERSION_CURRENT */ |
|
| CARD32 modversion; /* contains a module specific version id */ |
|
| CARD32 checksum[4]; /* contains a digital signature of the */ |
|
| /* version info structure */ |
|
| } XF86ModuleVersionInfo; |
|
| |
|
| | |
| #endif /* _XF86STR_H */ | #endif /* _XF86STR_H */ |