xf86Privstr.h revision 05b261ec
1 2/* 3 * Copyright (c) 1997-2003 by The XFree86 Project, Inc. 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the "Software"), 7 * to deal in the Software without restriction, including without limitation 8 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 * and/or sell copies of the Software, and to permit persons to whom the 10 * Software is furnished to do so, subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice shall be included in 13 * all copies or substantial portions of the Software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 20 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 21 * OTHER DEALINGS IN THE SOFTWARE. 22 * 23 * Except as contained in this notice, the name of the copyright holder(s) 24 * and author(s) shall not be used in advertising or otherwise to promote 25 * the sale, use or other dealings in this Software without prior written 26 * authorization from the copyright holder(s) and author(s). 27 */ 28 29/* 30 * This file contains definitions of the private XFree86 data structures/types. 31 * None of the data structures here should be used by video drivers. 32 */ 33 34#ifndef _XF86PRIVSTR_H 35#define _XF86PRIVSTR_H 36 37#include "xf86Pci.h" 38#include "xf86str.h" 39 40/* PCI probe flags */ 41 42typedef enum { 43 PCIProbe1 = 0, 44 PCIProbe2, 45 PCIForceConfig1, 46 PCIForceConfig2, 47 PCIForceNone, 48 PCIOsConfig 49} PciProbeType; 50 51typedef enum { 52 LogNone, 53 LogFlush, 54 LogSync 55} Log; 56 57typedef enum { 58 SKNever, 59 SKWhenNeeded, 60 SKAlways 61} SpecialKeysInDDX; 62 63/* 64 * xf86InfoRec contains global parameters which the video drivers never 65 * need to access. Global parameters which the video drivers do need 66 * should be individual globals. 67 */ 68 69typedef struct { 70 int consoleFd; 71 int vtno; 72 char * vtinit; 73 Bool vtSysreq; 74 SpecialKeysInDDX ddxSpecialKeys; 75 76 /* mouse part */ 77 DeviceIntPtr pMouse; 78#ifdef XINPUT 79 pointer mouseLocal; 80#endif 81 82 /* event handler part */ 83 int lastEventTime; 84 Bool vtRequestsPending; 85 Bool inputPending; 86 Bool dontVTSwitch; 87 Bool dontZap; 88 Bool dontZoom; 89 Bool notrapSignals; /* don't exit cleanly - die at fault */ 90 Bool caughtSignal; 91 92 /* graphics part */ 93 Bool sharedMonitor; 94 ScreenPtr currentScreen; 95#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__) 96 int screenFd; /* fd for memory mapped access to 97 * vga card */ 98 int consType; /* Which console driver? */ 99#endif 100 101 /* Other things */ 102 Bool allowMouseOpenFail; 103 Bool vidModeEnabled; /* VidMode extension enabled */ 104 Bool vidModeAllowNonLocal; /* allow non-local VidMode 105 * connections */ 106 Bool miscModInDevEnabled; /* Allow input devices to be 107 * changed */ 108 Bool miscModInDevAllowNonLocal; 109 PciProbeType pciFlags; 110 Pix24Flags pixmap24; 111 MessageType pix24From; 112#if defined(i386) || defined(__i386__) 113 Bool pc98; 114#endif 115 Bool pmFlag; 116 Log log; 117 int estimateSizesAggressively; 118 Bool kbdCustomKeycodes; 119 Bool disableRandR; 120 MessageType randRFrom; 121 Bool aiglx; 122 MessageType aiglxFrom; 123 Bool useDefaultFontPath; 124 MessageType useDefaultFontPathFrom; 125 Bool ignoreABI; 126 struct { 127 Bool disabled; /* enable/disable deactivating 128 * grabs or closing the 129 * connection to the grabbing 130 * client */ 131 ClientPtr override; /* client that disabled 132 * grab deactivation. 133 */ 134 Bool allowDeactivate; 135 Bool allowClosedown; 136 ServerGrabInfoRec server; 137 } grabInfo; 138 139 Bool allowEmptyInput; /* Allow the server to start with no input 140 * devices. */ 141 Bool autoAddDevices; /* Whether to succeed NIDR, or ignore. */ 142 Bool autoEnableDevices; /* Whether to enable, or let the client 143 * control. */ 144} xf86InfoRec, *xf86InfoPtr; 145 146#ifdef DPMSExtension 147/* Private info for DPMS */ 148typedef struct { 149 CloseScreenProcPtr CloseScreen; 150 Bool Enabled; 151 int Flags; 152} DPMSRec, *DPMSPtr; 153#endif 154 155#ifdef XF86VIDMODE 156/* Private info for Video Mode Extentsion */ 157typedef struct { 158 DisplayModePtr First; 159 DisplayModePtr Next; 160 int Flags; 161 CloseScreenProcPtr CloseScreen; 162} VidModeRec, *VidModePtr; 163#endif 164 165/* Information for root window properties. */ 166typedef struct _RootWinProp { 167 struct _RootWinProp * next; 168 char * name; 169 Atom type; 170 short format; 171 long size; 172 pointer data; 173} RootWinProp, *RootWinPropPtr; 174 175/* private resource types */ 176#define ResNoAvoid ResBios 177 178/* ISC's cc can't handle ~ of UL constants, so explicitly type cast them. */ 179#define XLED1 ((unsigned long) 0x00000001) 180#define XLED2 ((unsigned long) 0x00000002) 181#define XLED3 ((unsigned long) 0x00000004) 182#define XLED4 ((unsigned long) 0x00000008) 183#define XCAPS ((unsigned long) 0x20000000) 184#define XNUM ((unsigned long) 0x40000000) 185#define XSCR ((unsigned long) 0x80000000) 186#define XCOMP ((unsigned long) 0x00008000) 187 188/* BSD console driver types (consType) */ 189#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__) 190#define PCCONS 0 191#define CODRV011 1 192#define CODRV01X 2 193#define SYSCONS 8 194#define PCVT 16 195#define WSCONS 32 196#endif 197 198#endif /* _XF86PRIVSTR_H */ 199