45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/*
45e9809aff7304721fddb95654901b32195c9c7avboxsync * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync * Permission is hereby granted, free of charge, to any person obtaining a
45e9809aff7304721fddb95654901b32195c9c7avboxsync * copy of this software and associated documentation files (the "Software"),
45e9809aff7304721fddb95654901b32195c9c7avboxsync * to deal in the Software without restriction, including without limitation
45e9809aff7304721fddb95654901b32195c9c7avboxsync * the rights to use, copy, modify, merge, publish, distribute, sublicense,
45e9809aff7304721fddb95654901b32195c9c7avboxsync * and/or sell copies of the Software, and to permit persons to whom the
45e9809aff7304721fddb95654901b32195c9c7avboxsync * Software is furnished to do so, subject to the following conditions:
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync * The above copyright notice and this permission notice shall be included in
45e9809aff7304721fddb95654901b32195c9c7avboxsync * all copies or substantial portions of the Software.
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
45e9809aff7304721fddb95654901b32195c9c7avboxsync * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
45e9809aff7304721fddb95654901b32195c9c7avboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
45e9809aff7304721fddb95654901b32195c9c7avboxsync * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
45e9809aff7304721fddb95654901b32195c9c7avboxsync * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
45e9809aff7304721fddb95654901b32195c9c7avboxsync * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45e9809aff7304721fddb95654901b32195c9c7avboxsync * OTHER DEALINGS IN THE SOFTWARE.
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync * Except as contained in this notice, the name of the copyright holder(s)
45e9809aff7304721fddb95654901b32195c9c7avboxsync * and author(s) shall not be used in advertising or otherwise to promote
45e9809aff7304721fddb95654901b32195c9c7avboxsync * the sale, use or other dealings in this Software without prior written
45e9809aff7304721fddb95654901b32195c9c7avboxsync * authorization from the copyright holder(s) and author(s).
45e9809aff7304721fddb95654901b32195c9c7avboxsync */
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/*
45e9809aff7304721fddb95654901b32195c9c7avboxsync * This file contains definitions of the private XFree86 data structures/types.
45e9809aff7304721fddb95654901b32195c9c7avboxsync * None of the data structures here should be used by video drivers.
45e9809aff7304721fddb95654901b32195c9c7avboxsync */
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#ifndef _XF86PRIVSTR_H
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XF86PRIVSTR_H
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "xf86Pci.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "xf86str.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* PCI probe flags */
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef enum {
45e9809aff7304721fddb95654901b32195c9c7avboxsync PCIProbe1 = 0,
45e9809aff7304721fddb95654901b32195c9c7avboxsync PCIProbe2,
45e9809aff7304721fddb95654901b32195c9c7avboxsync PCIForceConfig1,
45e9809aff7304721fddb95654901b32195c9c7avboxsync PCIForceConfig2,
45e9809aff7304721fddb95654901b32195c9c7avboxsync PCIForceNone,
45e9809aff7304721fddb95654901b32195c9c7avboxsync PCIOsConfig
45e9809aff7304721fddb95654901b32195c9c7avboxsync} PciProbeType;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef enum {
45e9809aff7304721fddb95654901b32195c9c7avboxsync LogNone,
45e9809aff7304721fddb95654901b32195c9c7avboxsync LogFlush,
45e9809aff7304721fddb95654901b32195c9c7avboxsync LogSync
45e9809aff7304721fddb95654901b32195c9c7avboxsync} Log;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef enum {
45e9809aff7304721fddb95654901b32195c9c7avboxsync SKNever,
45e9809aff7304721fddb95654901b32195c9c7avboxsync SKWhenNeeded,
45e9809aff7304721fddb95654901b32195c9c7avboxsync SKAlways
45e9809aff7304721fddb95654901b32195c9c7avboxsync} SpecialKeysInDDX;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/*
45e9809aff7304721fddb95654901b32195c9c7avboxsync * xf86InfoRec contains global parameters which the video drivers never
45e9809aff7304721fddb95654901b32195c9c7avboxsync * need to access. Global parameters which the video drivers do need
45e9809aff7304721fddb95654901b32195c9c7avboxsync * should be individual globals.
45e9809aff7304721fddb95654901b32195c9c7avboxsync */
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct {
45e9809aff7304721fddb95654901b32195c9c7avboxsync int consoleFd;
45e9809aff7304721fddb95654901b32195c9c7avboxsync int vtno;
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * vtinit;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool vtSysreq;
45e9809aff7304721fddb95654901b32195c9c7avboxsync SpecialKeysInDDX ddxSpecialKeys;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync /* mouse part */
45e9809aff7304721fddb95654901b32195c9c7avboxsync DeviceIntPtr pMouse;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#ifdef XINPUT
45e9809aff7304721fddb95654901b32195c9c7avboxsync pointer mouseLocal;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync /* event handler part */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int lastEventTime;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool vtRequestsPending;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool inputPending;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool dontVTSwitch;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool dontZap;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool dontZoom;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool notrapSignals; /* don't exit cleanly - die at fault */
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool caughtSignal;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync /* graphics part */
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool sharedMonitor;
45e9809aff7304721fddb95654901b32195c9c7avboxsync ScreenPtr currentScreen;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__)
45e9809aff7304721fddb95654901b32195c9c7avboxsync int screenFd; /* fd for memory mapped access to
45e9809aff7304721fddb95654901b32195c9c7avboxsync * vga card */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int consType; /* Which console driver? */
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync /* Other things */
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool allowMouseOpenFail;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool vidModeEnabled; /* VidMode extension enabled */
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool vidModeAllowNonLocal; /* allow non-local VidMode
45e9809aff7304721fddb95654901b32195c9c7avboxsync * connections */
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool miscModInDevEnabled; /* Allow input devices to be
45e9809aff7304721fddb95654901b32195c9c7avboxsync * changed */
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool miscModInDevAllowNonLocal;
45e9809aff7304721fddb95654901b32195c9c7avboxsync PciProbeType pciFlags;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Pix24Flags pixmap24;
45e9809aff7304721fddb95654901b32195c9c7avboxsync MessageType pix24From;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#if defined(i386) || defined(__i386__)
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool pc98;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool pmFlag;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Log log;
45e9809aff7304721fddb95654901b32195c9c7avboxsync int estimateSizesAggressively;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool kbdCustomKeycodes;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool disableRandR;
45e9809aff7304721fddb95654901b32195c9c7avboxsync MessageType randRFrom;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool aiglx;
45e9809aff7304721fddb95654901b32195c9c7avboxsync MessageType aiglxFrom;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool useDefaultFontPath;
45e9809aff7304721fddb95654901b32195c9c7avboxsync MessageType useDefaultFontPathFrom;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool ignoreABI;
45e9809aff7304721fddb95654901b32195c9c7avboxsync struct {
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool disabled; /* enable/disable deactivating
45e9809aff7304721fddb95654901b32195c9c7avboxsync * grabs or closing the
45e9809aff7304721fddb95654901b32195c9c7avboxsync * connection to the grabbing
45e9809aff7304721fddb95654901b32195c9c7avboxsync * client */
45e9809aff7304721fddb95654901b32195c9c7avboxsync ClientPtr override; /* client that disabled
45e9809aff7304721fddb95654901b32195c9c7avboxsync * grab deactivation.
45e9809aff7304721fddb95654901b32195c9c7avboxsync */
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool allowDeactivate;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool allowClosedown;
45e9809aff7304721fddb95654901b32195c9c7avboxsync ServerGrabInfoRec server;
45e9809aff7304721fddb95654901b32195c9c7avboxsync } grabInfo;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool allowEmptyInput; /* Allow the server to start with no input
45e9809aff7304721fddb95654901b32195c9c7avboxsync * devices. */
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool autoAddDevices; /* Whether to succeed NIDR, or ignore. */
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool autoEnableDevices; /* Whether to enable, or let the client
45e9809aff7304721fddb95654901b32195c9c7avboxsync * control. */
45e9809aff7304721fddb95654901b32195c9c7avboxsync} xf86InfoRec, *xf86InfoPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#ifdef DPMSExtension
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* Private info for DPMS */
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct {
45e9809aff7304721fddb95654901b32195c9c7avboxsync CloseScreenProcPtr CloseScreen;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Bool Enabled;
45e9809aff7304721fddb95654901b32195c9c7avboxsync int Flags;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} DPMSRec, *DPMSPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#ifdef XF86VIDMODE
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* Private info for Video Mode Extentsion */
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct {
45e9809aff7304721fddb95654901b32195c9c7avboxsync DisplayModePtr First;
45e9809aff7304721fddb95654901b32195c9c7avboxsync DisplayModePtr Next;
45e9809aff7304721fddb95654901b32195c9c7avboxsync int Flags;
45e9809aff7304721fddb95654901b32195c9c7avboxsync CloseScreenProcPtr CloseScreen;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} VidModeRec, *VidModePtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* Information for root window properties. */
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct _RootWinProp {
45e9809aff7304721fddb95654901b32195c9c7avboxsync struct _RootWinProp * next;
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * name;
45e9809aff7304721fddb95654901b32195c9c7avboxsync Atom type;
45e9809aff7304721fddb95654901b32195c9c7avboxsync short format;
45e9809aff7304721fddb95654901b32195c9c7avboxsync long size;
45e9809aff7304721fddb95654901b32195c9c7avboxsync pointer data;
45e9809aff7304721fddb95654901b32195c9c7avboxsync} RootWinProp, *RootWinPropPtr;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* private resource types */
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define ResNoAvoid ResBios
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* ISC's cc can't handle ~ of UL constants, so explicitly type cast them. */
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XLED1 ((unsigned long) 0x00000001)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XLED2 ((unsigned long) 0x00000002)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XLED3 ((unsigned long) 0x00000004)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XLED4 ((unsigned long) 0x00000008)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XCAPS ((unsigned long) 0x20000000)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XNUM ((unsigned long) 0x40000000)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XSCR ((unsigned long) 0x80000000)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XCOMP ((unsigned long) 0x00008000)
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* BSD console driver types (consType) */
45e9809aff7304721fddb95654901b32195c9c7avboxsync#if defined(CSRG_BASED) || defined(__FreeBSD_kernel__)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define PCCONS 0
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define CODRV011 1
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define CODRV01X 2
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define SYSCONS 8
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define PCVT 16
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define WSCONS 32
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif /* _XF86PRIVSTR_H */