1706f2543Smrg 2706f2543Smrg/* 3706f2543Smrg * Copyright (c) 1997-2003 by The XFree86 Project, Inc. 4706f2543Smrg * 5706f2543Smrg * Permission is hereby granted, free of charge, to any person obtaining a 6706f2543Smrg * copy of this software and associated documentation files (the "Software"), 7706f2543Smrg * to deal in the Software without restriction, including without limitation 8706f2543Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9706f2543Smrg * and/or sell copies of the Software, and to permit persons to whom the 10706f2543Smrg * Software is furnished to do so, subject to the following conditions: 11706f2543Smrg * 12706f2543Smrg * The above copyright notice and this permission notice shall be included in 13706f2543Smrg * all copies or substantial portions of the Software. 14706f2543Smrg * 15706f2543Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16706f2543Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17706f2543Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18706f2543Smrg * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 19706f2543Smrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 20706f2543Smrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 21706f2543Smrg * OTHER DEALINGS IN THE SOFTWARE. 22706f2543Smrg * 23706f2543Smrg * Except as contained in this notice, the name of the copyright holder(s) 24706f2543Smrg * and author(s) shall not be used in advertising or otherwise to promote 25706f2543Smrg * the sale, use or other dealings in this Software without prior written 26706f2543Smrg * authorization from the copyright holder(s) and author(s). 27706f2543Smrg */ 28706f2543Smrg 29706f2543Smrg/* 30706f2543Smrg * This file contains all the XFree86 global variables. 31706f2543Smrg */ 32706f2543Smrg 33706f2543Smrg#ifdef HAVE_XORG_CONFIG_H 34706f2543Smrg#include <xorg-config.h> 35706f2543Smrg#endif 36706f2543Smrg 37706f2543Smrg#include <X11/X.h> 38706f2543Smrg#include "os.h" 39706f2543Smrg#include "windowstr.h" 40706f2543Smrg#include "propertyst.h" 41706f2543Smrg#include "xf86.h" 42706f2543Smrg#include "xf86Priv.h" 43706f2543Smrg#include "xf86Parser.h" 44706f2543Smrg#include "xf86Xinput.h" 45706f2543Smrg#include "xf86InPriv.h" 46706f2543Smrg#include "xf86Config.h" 47706f2543Smrg 48706f2543Smrg/* Globals that video drivers may access */ 49706f2543Smrg 50706f2543SmrgDevPrivateKeyRec xf86CreateRootWindowKeyRec; 51706f2543SmrgDevPrivateKeyRec xf86ScreenKeyRec; 52706f2543Smrg 53706f2543SmrgScrnInfoPtr *xf86Screens = NULL; /* List of ScrnInfos */ 54706f2543Smrgconst unsigned char byte_reversed[256] = 55706f2543Smrg{ 56706f2543Smrg 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, 57706f2543Smrg 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, 58706f2543Smrg 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, 59706f2543Smrg 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, 60706f2543Smrg 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, 61706f2543Smrg 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, 62706f2543Smrg 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, 63706f2543Smrg 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, 64706f2543Smrg 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, 65706f2543Smrg 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, 66706f2543Smrg 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, 67706f2543Smrg 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, 68706f2543Smrg 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, 69706f2543Smrg 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, 70706f2543Smrg 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, 71706f2543Smrg 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, 72706f2543Smrg 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, 73706f2543Smrg 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, 74706f2543Smrg 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, 75706f2543Smrg 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, 76706f2543Smrg 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, 77706f2543Smrg 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, 78706f2543Smrg 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, 79706f2543Smrg 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, 80706f2543Smrg 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, 81706f2543Smrg 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, 82706f2543Smrg 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, 83706f2543Smrg 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, 84706f2543Smrg 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, 85706f2543Smrg 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, 86706f2543Smrg 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, 87706f2543Smrg 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff, 88706f2543Smrg}; 89706f2543Smrg 90706f2543Smrg/* Globals that input drivers may access */ 91706f2543SmrgInputInfoPtr xf86InputDevs = NULL; 92706f2543Smrg 93706f2543Smrg 94706f2543Smrg/* Globals that video drivers may not access */ 95706f2543Smrg 96706f2543Smrgxf86InfoRec xf86Info = { 97706f2543Smrg .consoleFd = -1, 98706f2543Smrg .vtno = -1, 99706f2543Smrg .vtSysreq = FALSE, 100706f2543Smrg .lastEventTime = -1, 101706f2543Smrg .vtRequestsPending = FALSE, 102706f2543Smrg#ifdef sun 103706f2543Smrg .vtPendingNum = -1, 104706f2543Smrg#endif 105706f2543Smrg .dontVTSwitch = FALSE, 106706f2543Smrg .dontZap = FALSE, 107706f2543Smrg .dontZoom = FALSE, 108706f2543Smrg .notrapSignals = FALSE, 109706f2543Smrg .caughtSignal = FALSE, 110706f2543Smrg .currentScreen = NULL, 111706f2543Smrg#ifdef CSRG_BASED 112706f2543Smrg .screenFd = -1, 113706f2543Smrg .consType = -1, 114706f2543Smrg#endif 115706f2543Smrg .allowMouseOpenFail = FALSE, 116706f2543Smrg .vidModeEnabled = TRUE, 117706f2543Smrg .vidModeAllowNonLocal = FALSE, 118706f2543Smrg .miscModInDevEnabled = TRUE, 119706f2543Smrg .miscModInDevAllowNonLocal = FALSE, 120706f2543Smrg .pixmap24 = Pix24DontCare, 121706f2543Smrg .pix24From = X_DEFAULT, 122706f2543Smrg#ifdef SUPPORT_PC98 123706f2543Smrg .pc98 = FALSE, 124706f2543Smrg#endif 125706f2543Smrg .pmFlag = TRUE, 126706f2543Smrg .log = LogNone, 127706f2543Smrg .disableRandR = FALSE, 128706f2543Smrg .randRFrom = X_DEFAULT, 129706f2543Smrg#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) 130706f2543Smrg .forceInputDevices = FALSE, 131706f2543Smrg .autoAddDevices = TRUE, 132706f2543Smrg .autoEnableDevices = TRUE 133706f2543Smrg#else 134706f2543Smrg .forceInputDevices = TRUE, 135706f2543Smrg .autoAddDevices = FALSE, 136706f2543Smrg .autoEnableDevices = FALSE 137706f2543Smrg#endif 138706f2543Smrg}; 139706f2543Smrgconst char *xf86ConfigFile = NULL; 140706f2543Smrgconst char *xf86ConfigDir = NULL; 141706f2543Smrgconst char *xf86ModulePath = DEFAULT_MODULE_PATH; 142706f2543SmrgMessageType xf86ModPathFrom = X_DEFAULT; 143706f2543Smrgconst char *xf86LogFile = DEFAULT_LOGPREFIX; 144706f2543SmrgMessageType xf86LogFileFrom = X_DEFAULT; 145706f2543SmrgBool xf86LogFileWasOpened = FALSE; 146706f2543SmrgserverLayoutRec xf86ConfigLayout = {NULL, }; 147706f2543SmrgconfDRIRec xf86ConfigDRI = {0, }; 148706f2543SmrgXF86ConfigPtr xf86configptr = NULL; 149706f2543SmrgBool xf86Resetting = FALSE; 150706f2543SmrgBool xf86Initialising = FALSE; 151706f2543SmrgBool xf86DoConfigure = FALSE; 152706f2543SmrgBool xf86DoShowOptions = FALSE; 153706f2543SmrgDriverPtr *xf86DriverList = NULL; 154706f2543Smrgint xf86NumDrivers = 0; 155706f2543SmrgInputDriverPtr *xf86InputDriverList = NULL; 156706f2543Smrgint xf86NumInputDrivers = 0; 157706f2543Smrgint xf86NumScreens = 0; 158706f2543Smrg 159706f2543Smrgconst char *xf86VisualNames[] = { 160706f2543Smrg "StaticGray", 161706f2543Smrg "GrayScale", 162706f2543Smrg "StaticColor", 163706f2543Smrg "PseudoColor", 164706f2543Smrg "TrueColor", 165706f2543Smrg "DirectColor" 166706f2543Smrg}; 167706f2543Smrg 168706f2543Smrg/* Parameters set only from the command line */ 169706f2543Smrgchar *xf86ServerName = "no-name"; 170706f2543SmrgBool xf86fpFlag = FALSE; 171706f2543SmrgBool xf86sFlag = FALSE; 172706f2543SmrgBool xf86bsEnableFlag = FALSE; 173706f2543SmrgBool xf86bsDisableFlag = FALSE; 174706f2543SmrgBool xf86silkenMouseDisableFlag = FALSE; 175706f2543SmrgBool xf86xkbdirFlag = FALSE; 176706f2543Smrg#ifdef HAVE_ACPI 177706f2543SmrgBool xf86acpiDisableFlag = FALSE; 178706f2543Smrg#endif 179706f2543Smrgchar *xf86LayoutName = NULL; 180706f2543Smrgchar *xf86ScreenName = NULL; 181706f2543Smrgchar *xf86PointerName = NULL; 182706f2543Smrgchar *xf86KeyboardName = NULL; 183706f2543Smrgint xf86Verbose = DEFAULT_VERBOSE; 184706f2543Smrgint xf86LogVerbose = DEFAULT_LOG_VERBOSE; 185706f2543Smrgint xf86FbBpp = -1; 186706f2543SmrgPix24Flags xf86Pix24 = Pix24DontCare; 187706f2543Smrgint xf86Depth = -1; 188706f2543Smrgrgb xf86Weight = {0, 0, 0}; 189706f2543SmrgBool xf86FlipPixels = FALSE; 190706f2543SmrgGamma xf86Gamma = {0.0, 0.0, 0.0}; 191706f2543SmrgBool xf86AllowMouseOpenFail = FALSE; 192706f2543Smrg#ifdef XF86VIDMODE 193706f2543SmrgBool xf86VidModeDisabled = FALSE; 194706f2543SmrgBool xf86VidModeAllowNonLocal = FALSE; 195706f2543Smrg#endif 196706f2543SmrgRootWinPropPtr *xf86RegisteredPropertiesTable = NULL; 197706f2543SmrgBool xorgHWAccess = FALSE; 198