xf86Privstr.h revision 6747b715
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		kbdCustomKeycodes;
100    Bool		disableRandR;
101    MessageType		randRFrom;
102    Bool		aiglx;
103    MessageType		aiglxFrom;
104    XF86_GlxVisuals	glxVisuals;
105    MessageType		glxVisualsFrom;
106
107    Bool		useDefaultFontPath;
108    MessageType		useDefaultFontPathFrom;
109    Bool        ignoreABI;
110
111    Bool        allowEmptyInput;  /* Allow the server to start with no input
112                                   * devices. */
113    Bool        autoAddDevices; /* Whether to succeed NIDR, or ignore. */
114    Bool        autoEnableDevices; /* Whether to enable, or let the client
115                                    * control. */
116
117    Bool		dri2;
118    MessageType		dri2From;
119} xf86InfoRec, *xf86InfoPtr;
120
121#ifdef DPMSExtension
122/* Private info for DPMS */
123typedef struct {
124    CloseScreenProcPtr	CloseScreen;
125    Bool		Enabled;
126    int			Flags;
127} DPMSRec, *DPMSPtr;
128#endif
129
130#ifdef XF86VIDMODE
131/* Private info for Video Mode Extentsion */
132typedef struct {
133    DisplayModePtr	First;
134    DisplayModePtr	Next;
135    int			Flags;
136    CloseScreenProcPtr	CloseScreen;
137} VidModeRec, *VidModePtr;
138#endif
139
140/* Information for root window properties. */
141typedef struct _RootWinProp {
142    struct _RootWinProp *	next;
143    char *			name;
144    Atom			type;
145    short			format;
146    long			size;
147    pointer			data;
148} RootWinProp, *RootWinPropPtr;
149
150/* ISC's cc can't handle ~ of UL constants, so explicitly type cast them. */
151#define XLED1   ((unsigned long) 0x00000001)
152#define XLED2   ((unsigned long) 0x00000002)
153#define XLED3   ((unsigned long) 0x00000004)
154#define XLED4	((unsigned long) 0x00000008)
155#define XCAPS   ((unsigned long) 0x20000000)
156#define XNUM    ((unsigned long) 0x40000000)
157#define XSCR    ((unsigned long) 0x80000000)
158#define XCOMP	((unsigned long) 0x00008000)
159
160/* BSD console driver types (consType) */
161#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__)
162#define PCCONS		   0
163#define CODRV011	   1
164#define CODRV01X	   2
165#define SYSCONS		   8
166#define PCVT		  16
167#define WSCONS		  32
168#endif
169
170#endif /* _XF86PRIVSTR_H */
171