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 "xf86str.h" 38 39typedef enum { 40 LogNone, 41 LogFlush, 42 LogSync 43} Log; 44 45typedef enum { 46 XF86_GlxVisualsMinimal, 47 XF86_GlxVisualsTypical, 48 XF86_GlxVisualsAll, 49} XF86_GlxVisuals; 50 51/* 52 * xf86InfoRec contains global parameters which the video drivers never 53 * need to access. Global parameters which the video drivers do need 54 * should be individual globals. 55 */ 56 57typedef struct { 58 int consoleFd; 59 int vtno; 60 Bool vtSysreq; 61 62 /* event handler part */ 63 int lastEventTime; 64 Bool vtRequestsPending; 65#ifdef sun 66 int vtPendingNum; 67#endif 68 Bool dontVTSwitch; 69 Bool dontZap; 70 Bool dontZoom; 71 Bool notrapSignals; /* don't exit cleanly - die at fault */ 72 Bool caughtSignal; 73 74 /* graphics part */ 75 ScreenPtr currentScreen; 76#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__) 77 int screenFd; /* fd for memory mapped access to 78 * vga card */ 79 int consType; /* Which console driver? */ 80#endif 81 82 /* Other things */ 83 Bool allowMouseOpenFail; 84 Bool vidModeEnabled; /* VidMode extension enabled */ 85 Bool vidModeAllowNonLocal; /* allow non-local VidMode 86 * connections */ 87 Bool miscModInDevEnabled; /* Allow input devices to be 88 * changed */ 89 Bool miscModInDevAllowNonLocal; 90 Bool useSIGIO; /* Use SIGIO for handling 91 input device events */ 92 Pix24Flags pixmap24; 93 MessageType pix24From; 94#ifdef SUPPORT_PC98 95 Bool pc98; 96#endif 97 Bool pmFlag; 98 Log log; 99 Bool disableRandR; 100 MessageType randRFrom; 101 Bool aiglx; 102 MessageType aiglxFrom; 103 XF86_GlxVisuals glxVisuals; 104 MessageType glxVisualsFrom; 105 106 Bool useDefaultFontPath; 107 MessageType useDefaultFontPathFrom; 108 Bool ignoreABI; 109 110 Bool forceInputDevices; /* force xorg.conf or built-in input devices */ 111 Bool autoAddDevices; /* Whether to succeed NIDR, or ignore. */ 112 Bool autoEnableDevices; /* Whether to enable, or let the client 113 * control. */ 114 115 Bool dri2; 116 MessageType dri2From; 117} xf86InfoRec, *xf86InfoPtr; 118 119#ifdef DPMSExtension 120/* Private info for DPMS */ 121typedef struct { 122 CloseScreenProcPtr CloseScreen; 123 Bool Enabled; 124 int Flags; 125} DPMSRec, *DPMSPtr; 126#endif 127 128#ifdef XF86VIDMODE 129/* Private info for Video Mode Extentsion */ 130typedef struct { 131 DisplayModePtr First; 132 DisplayModePtr Next; 133 int Flags; 134 CloseScreenProcPtr CloseScreen; 135} VidModeRec, *VidModePtr; 136#endif 137 138/* Information for root window properties. */ 139typedef struct _RootWinProp { 140 struct _RootWinProp * next; 141 char * name; 142 Atom type; 143 short format; 144 long size; 145 pointer data; 146} RootWinProp, *RootWinPropPtr; 147 148/* ISC's cc can't handle ~ of UL constants, so explicitly type cast them. */ 149#define XLED1 ((unsigned long) 0x00000001) 150#define XLED2 ((unsigned long) 0x00000002) 151#define XLED3 ((unsigned long) 0x00000004) 152#define XLED4 ((unsigned long) 0x00000008) 153#define XCAPS ((unsigned long) 0x20000000) 154#define XNUM ((unsigned long) 0x40000000) 155#define XSCR ((unsigned long) 0x80000000) 156#define XCOMP ((unsigned long) 0x00008000) 157 158/* BSD console driver types (consType) */ 159#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__) 160#define PCCONS 0 161#define CODRV011 1 162#define CODRV01X 2 163#define SYSCONS 8 164#define PCVT 16 165#define WSCONS 32 166#endif 167 168#endif /* _XF86PRIVSTR_H */ 169