xserver-multidpi/hw/xfree86/common/xf86Privstr.h
2006-03-12 00:11:34 +00:00

237 lines
6.4 KiB
C

/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h,v 1.41 2004/01/27 01:31:45 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of the copyright holder(s)
* and author(s) shall not be used in advertising or otherwise to promote
* the sale, use or other dealings in this Software without prior written
* authorization from the copyright holder(s) and author(s).
*/
/*
* This file contains definitions of the private XFree86 data structures/types.
* None of the data structures here should be used by video drivers.
*/
#ifndef _XF86PRIVSTR_H
#define _XF86PRIVSTR_H
#include "xf86Pci.h"
#include "xf86str.h"
/* PCI probe flags */
typedef enum {
PCIProbe1 = 0,
PCIProbe2,
PCIForceConfig1,
PCIForceConfig2,
PCIForceNone,
PCIOsConfig
} PciProbeType;
typedef enum {
LogNone,
LogFlush,
LogSync
} Log;
typedef enum {
SKNever,
SKWhenNeeded,
SKAlways
} SpecialKeysInDDX;
/*
* xf86InfoRec contains global parameters which the video drivers never
* need to access. Global parameters which the video drivers do need
* should be individual globals.
*/
typedef struct {
/* keyboard part */
DeviceIntPtr pKeyboard;
DeviceProc kbdProc; /* procedure for initializing */
void (* kbdEvents)(void); /* proc for processing events */
int consoleFd;
int kbdFd;
int vtno;
int kbdType; /* AT84 / AT101 */
int kbdRate;
int kbdDelay;
int bell_pitch;
int bell_duration;
Bool autoRepeat;
unsigned long leds;
unsigned long xleds;
char * vtinit;
int scanPrefix; /* scancode-state */
Bool capsLock;
Bool numLock;
Bool scrollLock;
Bool modeSwitchLock;
Bool composeLock;
Bool vtSysreq;
SpecialKeysInDDX ddxSpecialKeys;
Bool ActionKeyBindingsSet;
#if defined(SVR4) && defined(i386)
Bool panix106;
#endif /* SVR4 && i386 */
#if defined(__OpenBSD__) || defined(__NetBSD__)
int wsKbdType;
#endif
/* mouse part */
DeviceIntPtr pMouse;
#ifdef XINPUT
pointer mouseLocal;
#endif
/* event handler part */
int lastEventTime;
Bool vtRequestsPending;
Bool inputPending;
Bool dontVTSwitch;
Bool dontZap;
Bool dontZoom;
Bool notrapSignals; /* don't exit cleanly - die at fault */
Bool caughtSignal;
/* graphics part */
Bool sharedMonitor;
ScreenPtr currentScreen;
#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__)
int screenFd; /* fd for memory mapped access to
* vga card */
int consType; /* Which console driver? */
#endif
#ifdef XKB
/*
* would like to use an XkbComponentNamesRec here but can't without
* pulling in a bunch of header files. :-(
*/
char * xkbkeymap;
char * xkbkeycodes;
char * xkbtypes;
char * xkbcompat;
char * xkbsymbols;
char * xkbgeometry;
Bool xkbcomponents_specified;
char * xkbrules;
char * xkbmodel;
char * xkblayout;
char * xkbvariant;
char * xkboptions;
#endif
/* Other things */
Bool allowMouseOpenFail;
Bool vidModeEnabled; /* VidMode extension enabled */
Bool vidModeAllowNonLocal; /* allow non-local VidMode
* connections */
Bool miscModInDevEnabled; /* Allow input devices to be
* changed */
Bool miscModInDevAllowNonLocal;
PciProbeType pciFlags;
Pix24Flags pixmap24;
MessageType pix24From;
#if defined(i386) || defined(__i386__)
Bool pc98;
#endif
Bool pmFlag;
Log log;
int estimateSizesAggressively;
Bool kbdCustomKeycodes;
Bool disableRandR;
MessageType randRFrom;
Bool aiglx;
MessageType aiglxFrom;
struct {
Bool disabled; /* enable/disable deactivating
* grabs or closing the
* connection to the grabbing
* client */
ClientPtr override; /* client that disabled
* grab deactivation.
*/
Bool allowDeactivate;
Bool allowClosedown;
ServerGrabInfoRec server;
} grabInfo;
} xf86InfoRec, *xf86InfoPtr;
#ifdef DPMSExtension
/* Private info for DPMS */
typedef struct {
CloseScreenProcPtr CloseScreen;
Bool Enabled;
int Flags;
} DPMSRec, *DPMSPtr;
#endif
#ifdef XF86VIDMODE
/* Private info for Video Mode Extentsion */
typedef struct {
DisplayModePtr First;
DisplayModePtr Next;
int Flags;
CloseScreenProcPtr CloseScreen;
} VidModeRec, *VidModePtr;
#endif
/* Information for root window properties. */
typedef struct _RootWinProp {
struct _RootWinProp * next;
char * name;
Atom type;
short format;
long size;
pointer data;
} RootWinProp, *RootWinPropPtr;
/* private resource types */
#define ResNoAvoid ResBios
/* ISC's cc can't handle ~ of UL constants, so explicitly type cast them. */
#define XLED1 ((unsigned long) 0x00000001)
#define XLED2 ((unsigned long) 0x00000002)
#define XLED3 ((unsigned long) 0x00000004)
#define XLED4 ((unsigned long) 0x00000008)
#define XCAPS ((unsigned long) 0x20000000)
#define XNUM ((unsigned long) 0x40000000)
#define XSCR ((unsigned long) 0x80000000)
#define XCOMP ((unsigned long) 0x00008000)
/* BSD console driver types (consType) */
#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__)
#define PCCONS 0
#define CODRV011 1
#define CODRV01X 2
#define SYSCONS 8
#define PCVT 16
#define WSCONS 32
#endif
#endif /* _XF86PRIVSTR_H */