105b261ecSmrg
205b261ecSmrg/*
305b261ecSmrg * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
405b261ecSmrg *
505b261ecSmrg * Permission is hereby granted, free of charge, to any person obtaining a
605b261ecSmrg * copy of this software and associated documentation files (the "Software"),
705b261ecSmrg * to deal in the Software without restriction, including without limitation
805b261ecSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
905b261ecSmrg * and/or sell copies of the Software, and to permit persons to whom the
1005b261ecSmrg * Software is furnished to do so, subject to the following conditions:
1105b261ecSmrg *
1205b261ecSmrg * The above copyright notice and this permission notice shall be included in
1305b261ecSmrg * all copies or substantial portions of the Software.
1405b261ecSmrg *
1505b261ecSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1605b261ecSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1705b261ecSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
1805b261ecSmrg * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
1905b261ecSmrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
2005b261ecSmrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2105b261ecSmrg * OTHER DEALINGS IN THE SOFTWARE.
2205b261ecSmrg *
2305b261ecSmrg * Except as contained in this notice, the name of the copyright holder(s)
2405b261ecSmrg * and author(s) shall not be used in advertising or otherwise to promote
2505b261ecSmrg * the sale, use or other dealings in this Software without prior written
2605b261ecSmrg * authorization from the copyright holder(s) and author(s).
2705b261ecSmrg */
2805b261ecSmrg
2905b261ecSmrg/*
3005b261ecSmrg * This file contains definitions of the private XFree86 data structures/types.
3105b261ecSmrg * None of the data structures here should be used by video drivers.
3235c4bbdfSmrg */
3305b261ecSmrg
3405b261ecSmrg#ifndef _XF86PRIVSTR_H
3505b261ecSmrg#define _XF86PRIVSTR_H
3605b261ecSmrg
3705b261ecSmrg#include "xf86str.h"
3805b261ecSmrg
394642e01fSmrgtypedef enum {
404642e01fSmrg    XF86_GlxVisualsMinimal,
414642e01fSmrg    XF86_GlxVisualsTypical,
424642e01fSmrg    XF86_GlxVisualsAll,
434642e01fSmrg} XF86_GlxVisuals;
444642e01fSmrg
4505b261ecSmrg/*
4605b261ecSmrg * xf86InfoRec contains global parameters which the video drivers never
4705b261ecSmrg * need to access.  Global parameters which the video drivers do need
4805b261ecSmrg * should be individual globals.
4905b261ecSmrg */
5005b261ecSmrg
5105b261ecSmrgtypedef struct {
5235c4bbdfSmrg    int consoleFd;
5335c4bbdfSmrg    int vtno;
5405b261ecSmrg
5505b261ecSmrg    /* event handler part */
5635c4bbdfSmrg    int lastEventTime;
5735c4bbdfSmrg    Bool vtRequestsPending;
581b5d61b8Smrg#ifdef __sun
5935c4bbdfSmrg    int vtPendingNum;
606747b715Smrg#endif
6135c4bbdfSmrg    Bool dontVTSwitch;
6235c4bbdfSmrg    Bool autoVTSwitch;
6335c4bbdfSmrg    Bool ShareVTs;
6435c4bbdfSmrg    Bool dontZap;
6535c4bbdfSmrg    Bool dontZoom;
6605b261ecSmrg
6705b261ecSmrg    /* graphics part */
6835c4bbdfSmrg    ScreenPtr currentScreen;
6905b261ecSmrg#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__)
7035c4bbdfSmrg    int consType;               /* Which console driver? */
7105b261ecSmrg#endif
7205b261ecSmrg
7305b261ecSmrg    /* Other things */
7435c4bbdfSmrg    Bool allowMouseOpenFail;
7535c4bbdfSmrg    Bool vidModeEnabled;        /* VidMode extension enabled */
7635c4bbdfSmrg    Bool vidModeAllowNonLocal;  /* allow non-local VidMode
7735c4bbdfSmrg                                 * connections */
7835c4bbdfSmrg    Bool miscModInDevEnabled;   /* Allow input devices to be
7935c4bbdfSmrg                                 * changed */
8035c4bbdfSmrg    Bool miscModInDevAllowNonLocal;
8135c4bbdfSmrg    Bool pmFlag;
8235c4bbdfSmrg    MessageType iglxFrom;
8335c4bbdfSmrg    XF86_GlxVisuals glxVisuals;
8435c4bbdfSmrg    MessageType glxVisualsFrom;
8535c4bbdfSmrg
8635c4bbdfSmrg    Bool useDefaultFontPath;
8735c4bbdfSmrg    Bool ignoreABI;
8835c4bbdfSmrg
8935c4bbdfSmrg    Bool forceInputDevices;     /* force xorg.conf or built-in input devices */
9035c4bbdfSmrg    Bool autoAddDevices;        /* Whether to succeed NIDR, or ignore. */
9135c4bbdfSmrg    Bool autoEnableDevices;     /* Whether to enable, or let the client
9235c4bbdfSmrg                                 * control. */
9335c4bbdfSmrg
9435c4bbdfSmrg    Bool dri2;
9535c4bbdfSmrg    MessageType dri2From;
9635c4bbdfSmrg
9735c4bbdfSmrg    Bool autoAddGPU;
981b5d61b8Smrg    const char *debug;
99ed6184dfSmrg    Bool autoBindGPU;
10005b261ecSmrg} xf86InfoRec, *xf86InfoPtr;
10105b261ecSmrg
10205b261ecSmrg/* ISC's cc can't handle ~ of UL constants, so explicitly type cast them. */
10305b261ecSmrg#define XLED1   ((unsigned long) 0x00000001)
10405b261ecSmrg#define XLED2   ((unsigned long) 0x00000002)
10505b261ecSmrg#define XLED3   ((unsigned long) 0x00000004)
10605b261ecSmrg#define XLED4	((unsigned long) 0x00000008)
10705b261ecSmrg#define XCAPS   ((unsigned long) 0x20000000)
10805b261ecSmrg#define XNUM    ((unsigned long) 0x40000000)
10905b261ecSmrg#define XSCR    ((unsigned long) 0x80000000)
11005b261ecSmrg#define XCOMP	((unsigned long) 0x00008000)
11105b261ecSmrg
11205b261ecSmrg/* BSD console driver types (consType) */
11305b261ecSmrg#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__)
11405b261ecSmrg#define PCCONS		   0
11505b261ecSmrg#define CODRV011	   1
11605b261ecSmrg#define CODRV01X	   2
11705b261ecSmrg#define SYSCONS		   8
11805b261ecSmrg#define PCVT		  16
11905b261ecSmrg#define WSCONS		  32
12005b261ecSmrg#endif
12105b261ecSmrg
12235c4bbdfSmrg/* Root window property to tell clients whether our VT is currently active.
12335c4bbdfSmrg * Name chosen to match the "XFree86_VT" property. */
12435c4bbdfSmrg#define HAS_VT_ATOM_NAME "XFree86_has_VT"
12535c4bbdfSmrg
12635c4bbdfSmrg#endif                          /* _XF86PRIVSTR_H */
127