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