mirror of
git://nv-tegra.nvidia.com/tegra/gfx-src/nv-xconfig.git
synced 2025-12-22 09:22:53 +03:00
22a5c807291792a264b5acca7ff6d199468890b8 - nvidia-xconfig-35.6.1/Makefile 4cc77b90af91e615a64ae04893fdffa7939db84c - nvidia-xconfig-35.6.1/COPYING f14e9577e537037d4778d490ef70f13b0e94a70a - nvidia-xconfig-35.6.1/option_table.h 647e7896275a1113ec99352d573823a05001f57e - nvidia-xconfig-35.6.1/lscf.c 1e39095238886dfc6a69f7ec750e10c05a93e7d1 - nvidia-xconfig-35.6.1/nvidia-xconfig.1.m4 a5ad539267b73169480e7898b284823639c4db3a - nvidia-xconfig-35.6.1/tree.c b3d0f9f27c4d9cb7940d04e1dd387d357a16024c - nvidia-xconfig-35.6.1/nvidia-xconfig.c 46f2ea329459b0b16cb36cc14cec0de737d0963e - nvidia-xconfig-35.6.1/options.c 6f6f68f976250f2646450e571f9ab2d7eee1ac80 - nvidia-xconfig-35.6.1/nvidia-cfg.h 913b088cb559f31e09a1baf89d85d75cb43079b4 - nvidia-xconfig-35.6.1/nvidia-xconfig.h bfa37f78ba458f14a1865bbf3f67eb84987a7e1c - nvidia-xconfig-35.6.1/extract_edids.c d37da5a118e0418b267a48d05fd144611316b42c - nvidia-xconfig-35.6.1/gen-manpage-opts.c 41bcac41393c9a465c30c07cf1ab386647a16687 - nvidia-xconfig-35.6.1/util.c 9b0c02164398be2795fea7cb13c9e1b062d24bfb - nvidia-xconfig-35.6.1/query_gpu_info.c c946eefad99cec9366d8abbd4e45c5d138d3b7be - nvidia-xconfig-35.6.1/make_usable.c 10edc2c301fd331439b38d001c0df41669c238b2 - nvidia-xconfig-35.6.1/multiple_screens.c c7b8d8ca0f7c9dcc2cdca4f8e77d1122c71892ef - nvidia-xconfig-35.6.1/XF86Config-parser/Read.c a9bc06f33bf525c2b08be2dc3cd64a59c4c7946d - nvidia-xconfig-35.6.1/XF86Config-parser/Configint.h 2022a4a3c2a1b23a67ae74f50a3849f5f3a45e4b - nvidia-xconfig-35.6.1/XF86Config-parser/Keyboard.c 83b0a8efd6a508db54995688ab353591bdb242a2 - nvidia-xconfig-35.6.1/XF86Config-parser/Flags.c e67d630ef396ab7d34524c333f3a77fc42ba8fc6 - nvidia-xconfig-35.6.1/XF86Config-parser/configProcs.h f3d611bdbddfa64675a0810ef81dada57e224bcd - nvidia-xconfig-35.6.1/XF86Config-parser/Extensions.c 5ffb2caa5077a2e6ec1c5ece807e71503fb2fbce - nvidia-xconfig-35.6.1/XF86Config-parser/Module.c 7344be997921dec57959691e986763ee686888d5 - nvidia-xconfig-35.6.1/XF86Config-parser/Device.c 33211ca0a10f50e2c87b9e8feef6c1ab381b57a1 - nvidia-xconfig-35.6.1/XF86Config-parser/DRI.c 953b945f3b117d6fb44f1f738af17b6380a9ec72 - nvidia-xconfig-35.6.1/XF86Config-parser/Monitor.c 6c210ad0eaee1db3fec48ff01746cb054b4f9aaa - nvidia-xconfig-35.6.1/XF86Config-parser/Video.c 4407207cf890539dc604cff5b834c994b307729a - nvidia-xconfig-35.6.1/XF86Config-parser/Write.c de1c758e29f217e1a99e4c076d54ac84bce98b18 - nvidia-xconfig-35.6.1/XF86Config-parser/Screen.c c66a0a141e25e31b568fb9df41f17d7fb9e6d3b9 - nvidia-xconfig-35.6.1/XF86Config-parser/xf86Parser.h 9cbc29da282aa957f28b7fc83caf1e3b19ee2a52 - nvidia-xconfig-35.6.1/XF86Config-parser/Vendor.c 18711ff932af2202869a30f3b32d6d7fe7811c84 - nvidia-xconfig-35.6.1/XF86Config-parser/Layout.c cda3a4ab05bf48ba28af35b5c4c632e968afc7fa - nvidia-xconfig-35.6.1/XF86Config-parser/Util.c ec19d673a6a7d1d8f855f2d32d3e8f63046c3625 - nvidia-xconfig-35.6.1/XF86Config-parser/Files.c ac878b26ded86a3c502a6a81fc4c4a96162afefb - nvidia-xconfig-35.6.1/XF86Config-parser/Merge.c 0a274c4bc54b6ae0f6d009e443bda0cb033d66b5 - nvidia-xconfig-35.6.1/XF86Config-parser/Pointer.c 3f2238c88d737bd329a9bca1ac4b0bcf77bb9ac2 - nvidia-xconfig-35.6.1/XF86Config-parser/xf86tokens.h 45ceb0129668346ae3e52d81bb6e2f97efadf9d0 - nvidia-xconfig-35.6.1/XF86Config-parser/Input.c 4d9b03ea3badceb6bdfdf6589e6731140ec44079 - nvidia-xconfig-35.6.1/XF86Config-parser/Generate.c 04efe162cf6d97882f2bb87f3712d9a65c2320f3 - nvidia-xconfig-35.6.1/XF86Config-parser/Scan.c 5d55b94375c2055cfa1578e4c7f34c90e63a33f7 - nvidia-xconfig-35.6.1/common-utils/gen-manpage-opts-helper.c 384e36102dcd08ed4c5de05b5e3b8a7cdb2e257d - nvidia-xconfig-35.6.1/common-utils/nvgetopt.c dc2678d8a9d794a4b2b2718fce57ec087f21f54b - nvidia-xconfig-35.6.1/common-utils/common-utils.h aac5cbf0e68e1da4e646c316a7c0e620304ee16b - nvidia-xconfig-35.6.1/common-utils/msg.c e572cac43202f6c2af1c80b9e3901215126093ed - nvidia-xconfig-35.6.1/common-utils/nvgetopt.h 8a346196b052cfb1e06dd83d2ad1fe71e928d2b3 - nvidia-xconfig-35.6.1/common-utils/common-utils.c 1654638c567bc7f2bd70b54d807b498ab14c1061 - nvidia-xconfig-35.6.1/common-utils/nvpci-utils.h 8259a24058c714629f9819cc8c830ea9b202bb27 - nvidia-xconfig-35.6.1/common-utils/gen-manpage-opts-helper.h 524990f5497f9bbeb3d148b5e7dc8d2267c3163d - nvidia-xconfig-35.6.1/common-utils/nvpci-utils.c abb5c1b445d9353f2d2840bda848cd16109710a4 - nvidia-xconfig-35.6.1/common-utils/msg.h Change-Id: I5131245bdd3ad6100a958c1e8414d037d5e0556a
801 lines
23 KiB
C
801 lines
23 KiB
C
/*
|
|
*
|
|
* Copyright (c) 1997 Metro Link Incorporated
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
* copy of this software and associated documentation files (the "Software"),
|
|
* to deal in the Software without restriction, including without limitation
|
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
* and/or sell copies of the Software, and to permit persons to whom the
|
|
* Software is furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
|
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
* SOFTWARE.
|
|
*
|
|
* Except as contained in this notice, the name of the Metro Link shall not be
|
|
* used in advertising or otherwise to promote the sale, use or other dealings
|
|
* in this Software without prior written authorization from Metro Link.
|
|
*
|
|
*/
|
|
/*
|
|
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
* copy of this software and associated documentation files (the "Software"),
|
|
* to deal in the Software without restriction, including without limitation
|
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
* and/or sell copies of the Software, and to permit persons to whom the
|
|
* Software is furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
* OTHER DEALINGS IN THE SOFTWARE.
|
|
*
|
|
* Except as contained in this notice, the name of the copyright holder(s)
|
|
* and author(s) shall not be used in advertising or otherwise to promote
|
|
* the sale, use or other dealings in this Software without prior written
|
|
* authorization from the copyright holder(s) and author(s).
|
|
*/
|
|
|
|
|
|
/*
|
|
* This file specifies the external interface for the X configuration
|
|
* file parser; based loosely on the XFree86 and Xorg X server
|
|
* configuration code.
|
|
*/
|
|
|
|
|
|
#ifndef _xf86Parser_h_
|
|
#define _xf86Parser_h_
|
|
|
|
#include <stdio.h>
|
|
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
|
|
// Unix variations: Linux
|
|
#if !defined(NV_LINUX) && defined(__linux__)
|
|
# define NV_LINUX
|
|
#endif // defined(__linux__)
|
|
|
|
// Unix variations: SunOS
|
|
#if !defined(NV_SUNOS) && (defined(__sun__) || defined(__sun))
|
|
# define NV_SUNOS
|
|
#endif // defined(__sun__)
|
|
|
|
// Unix variations: FreeBSD
|
|
#if !defined(NV_BSD) && defined(__FreeBSD__)
|
|
# define NV_BSD
|
|
#endif // defined(__FreeBSD__)
|
|
|
|
|
|
/*
|
|
* return codes
|
|
*/
|
|
|
|
typedef enum {
|
|
XCONFIG_RETURN_SUCCESS = 0,
|
|
XCONFIG_RETURN_NO_XCONFIG_FOUND,
|
|
XCONFIG_RETURN_PARSE_ERROR,
|
|
XCONFIG_RETURN_ALLOCATION_ERROR,
|
|
XCONFIG_RETURN_VALIDATION_ERROR,
|
|
XCONFIG_RETURN_INVALID_COMMAND_LINE,
|
|
XCONFIG_RETURN_SANITY_ERROR,
|
|
XCONFIG_RETURN_WRITE_ERROR
|
|
} XConfigError;
|
|
|
|
|
|
/*
|
|
* Message types
|
|
*/
|
|
|
|
typedef enum {
|
|
ParseErrorMsg,
|
|
ParseWarningMsg,
|
|
ValidationErrorMsg,
|
|
InternalErrorMsg,
|
|
WriteErrorMsg,
|
|
WarnMsg,
|
|
ErrorMsg,
|
|
DebugMsg,
|
|
UnknownMsg
|
|
} MsgType;
|
|
|
|
|
|
/*
|
|
* The user of libXF86Config-parser should provide an implementation
|
|
* of xconfigPrint()
|
|
*/
|
|
|
|
void xconfigPrint(MsgType t, const char *msg);
|
|
|
|
|
|
/*
|
|
* all records that need to be linked lists should contain a next
|
|
* pointer as their first field, so that they can be cast as a
|
|
* GenericListRec
|
|
*/
|
|
|
|
typedef struct { void *next; } GenericListRec, *GenericListPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Options are stored in the XConfigOptionRec structure
|
|
*/
|
|
|
|
typedef struct __xconfigoptionrec {
|
|
struct __xconfigoptionrec *next;
|
|
char *name;
|
|
char *val;
|
|
char *comment;
|
|
} XConfigOptionRec, *XConfigOptionPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Files Section
|
|
*/
|
|
|
|
typedef struct {
|
|
char *logfile;
|
|
char *rgbpath;
|
|
char *modulepath;
|
|
char *inputdevs;
|
|
char *fontpath;
|
|
char *comment;
|
|
} XConfigFilesRec, *XConfigFilesPtr;
|
|
|
|
/* Values for load_type */
|
|
#define XCONFIG_LOAD_MODULE 0
|
|
#define XCONFIG_LOAD_DRIVER 1
|
|
#define XCONFIG_DISABLE_MODULE 2
|
|
|
|
|
|
/*
|
|
* Modules Section
|
|
*/
|
|
|
|
typedef struct __xconfigloadrec {
|
|
struct __xconfigloadrec *next;
|
|
int type;
|
|
char *name;
|
|
XConfigOptionPtr opt;
|
|
char *comment;
|
|
} XConfigLoadRec, *XConfigLoadPtr;
|
|
|
|
typedef struct {
|
|
XConfigLoadPtr loads;
|
|
XConfigLoadPtr disables;
|
|
char *comment;
|
|
} XConfigModuleRec, *XConfigModulePtr;
|
|
|
|
#define CONF_IMPLICIT_KEYBOARD "Implicit Core Keyboard"
|
|
|
|
#define CONF_IMPLICIT_POINTER "Implicit Core Pointer"
|
|
|
|
|
|
|
|
/*
|
|
* Modeline structure
|
|
*/
|
|
|
|
#define XCONFIG_MODE_PHSYNC 0x0001
|
|
#define XCONFIG_MODE_NHSYNC 0x0002
|
|
#define XCONFIG_MODE_PVSYNC 0x0004
|
|
#define XCONFIG_MODE_NVSYNC 0x0008
|
|
#define XCONFIG_MODE_INTERLACE 0x0010
|
|
#define XCONFIG_MODE_DBLSCAN 0x0020
|
|
#define XCONFIG_MODE_CSYNC 0x0040
|
|
#define XCONFIG_MODE_PCSYNC 0x0080
|
|
#define XCONFIG_MODE_NCSYNC 0x0100
|
|
#define XCONFIG_MODE_HSKEW 0x0200 /* hskew provided */
|
|
#define XCONFIG_MODE_BCAST 0x0400
|
|
#define XCONFIG_MODE_CUSTOM 0x0800 /* timing numbers customized by editor */
|
|
#define XCONFIG_MODE_VSCAN 0x1000
|
|
|
|
typedef struct __xconfigconfmodelinerec {
|
|
struct __xconfigconfmodelinerec *next;
|
|
char *identifier;
|
|
char *clock; /* stored in MHz */
|
|
int hdisplay;
|
|
int hsyncstart;
|
|
int hsyncend;
|
|
int htotal;
|
|
int vdisplay;
|
|
int vsyncstart;
|
|
int vsyncend;
|
|
int vtotal;
|
|
int vscan;
|
|
int flags;
|
|
int hskew;
|
|
char *comment;
|
|
} XConfigModeLineRec, *XConfigModeLinePtr;
|
|
|
|
|
|
|
|
/*
|
|
* VideoPort and VideoAdapter XXX what are these?
|
|
*/
|
|
|
|
typedef struct __xconfigconfvideoportrec {
|
|
struct __xconfigconfvideoportrec *next;
|
|
char *identifier;
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
} XConfigVideoPortRec, *XConfigVideoPortPtr;
|
|
|
|
typedef struct __xconfigconfvideoadaptorrec {
|
|
struct __xconfigconfvideoadaptorrec *next;
|
|
char *identifier;
|
|
char *vendor;
|
|
char *board;
|
|
char *busid;
|
|
char *driver;
|
|
XConfigOptionPtr options;
|
|
XConfigVideoPortPtr ports;
|
|
char *fwdref;
|
|
char *comment;
|
|
} XConfigVideoAdaptorRec, *XConfigVideoAdaptorPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Monitor Section
|
|
*/
|
|
|
|
#define CONF_MAX_HSYNC 8
|
|
#define CONF_MAX_VREFRESH 8
|
|
|
|
typedef struct { float hi, lo; } parser_range;
|
|
|
|
typedef struct { int red, green, blue; } parser_rgb;
|
|
|
|
typedef struct __xconfigconfmodesrec {
|
|
struct __xconfigconfmodesrec *next;
|
|
char *identifier;
|
|
XConfigModeLinePtr modelines;
|
|
char *comment;
|
|
} XConfigModesRec, *XConfigModesPtr;
|
|
|
|
typedef struct __xconfigconfmodeslinkrec {
|
|
struct __xconfigconfmodeslinkrec *next;
|
|
char *modes_name;
|
|
XConfigModesPtr modes;
|
|
} XConfigModesLinkRec, *XConfigModesLinkPtr;
|
|
|
|
typedef struct __xconfigconfmonitorrec {
|
|
struct __xconfigconfmonitorrec *next;
|
|
char *identifier;
|
|
char *vendor;
|
|
char *modelname;
|
|
int width; /* in mm */
|
|
int height; /* in mm */
|
|
XConfigModeLinePtr modelines;
|
|
int n_hsync;
|
|
parser_range hsync[CONF_MAX_HSYNC];
|
|
int n_vrefresh;
|
|
parser_range vrefresh[CONF_MAX_VREFRESH];
|
|
float gamma_red;
|
|
float gamma_green;
|
|
float gamma_blue;
|
|
XConfigOptionPtr options;
|
|
XConfigModesLinkPtr modes_sections;
|
|
char *comment;
|
|
} XConfigMonitorRec, *XConfigMonitorPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Device Section
|
|
*/
|
|
|
|
#define CONF_MAXDACSPEEDS 4
|
|
#define CONF_MAXCLOCKS 128
|
|
|
|
typedef struct __xconfigconfdevicerec {
|
|
struct __xconfigconfdevicerec *next;
|
|
char *identifier;
|
|
char *vendor;
|
|
char *board;
|
|
char *chipset;
|
|
char *busid;
|
|
char *card;
|
|
char *driver;
|
|
char *ramdac;
|
|
int dacSpeeds[CONF_MAXDACSPEEDS];
|
|
int videoram;
|
|
int textclockfreq;
|
|
unsigned long bios_base;
|
|
unsigned long mem_base;
|
|
unsigned long io_base;
|
|
char *clockchip;
|
|
int clocks;
|
|
int clock[CONF_MAXCLOCKS];
|
|
int chipid;
|
|
int chiprev;
|
|
int irq;
|
|
int screen;
|
|
size_t index_id;
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
} XConfigDeviceRec, *XConfigDevicePtr;
|
|
|
|
|
|
|
|
/*
|
|
* Screen Section
|
|
*/
|
|
|
|
typedef struct __xconfigmoderec {
|
|
struct __xconfigmoderec *next;
|
|
char *mode_name;
|
|
} XConfigModeRec, *XConfigModePtr;
|
|
|
|
typedef struct __xconfigconfdisplayrec {
|
|
struct __xconfigconfdisplayrec *next;
|
|
int frameX0;
|
|
int frameY0;
|
|
int virtualX;
|
|
int virtualY;
|
|
int depth;
|
|
int bpp;
|
|
char *visual;
|
|
parser_rgb weight;
|
|
parser_rgb black;
|
|
parser_rgb white;
|
|
XConfigModePtr modes;
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
} XConfigDisplayRec, *XConfigDisplayPtr;
|
|
|
|
typedef struct __xconfigconfadaptorlinkrec {
|
|
struct __xconfigconfadaptorlinkrec *next;
|
|
char *adaptor_name;
|
|
XConfigVideoAdaptorPtr adaptor;
|
|
} XConfigAdaptorLinkRec, *XConfigAdaptorLinkPtr;
|
|
|
|
typedef struct __xconfigconfscreenrec {
|
|
struct __xconfigconfscreenrec *next;
|
|
char *identifier;
|
|
char *obsolete_driver;
|
|
int defaultdepth;
|
|
int defaultbpp;
|
|
int defaultfbbpp;
|
|
char *monitor_name;
|
|
XConfigMonitorPtr monitor;
|
|
char *device_name;
|
|
XConfigDevicePtr device;
|
|
XConfigAdaptorLinkPtr adaptors;
|
|
XConfigDisplayPtr displays;
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
} XConfigScreenRec, *XConfigScreenPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Input Section
|
|
*/
|
|
|
|
typedef struct __xconfigconfinputrec {
|
|
struct __xconfigconfinputrec *next;
|
|
char *identifier;
|
|
char *driver;
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
} XConfigInputRec, *XConfigInputPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Input Class Section
|
|
*/
|
|
|
|
typedef struct __xconfigconfinputclassrec {
|
|
struct __xconfigconfinputclassrec *next;
|
|
char *identifier;
|
|
char *driver;
|
|
char *match_is_pointer;
|
|
char *match_is_touchpad;
|
|
char *match_is_touchscreen;
|
|
char *match_is_keyboard;
|
|
char *match_is_joystick;
|
|
char *match_is_tablet;
|
|
char *match_tag;
|
|
char *match_device_path;
|
|
char *match_os;
|
|
char *match_usb_id;
|
|
char *match_pnp_id;
|
|
char *match_product;
|
|
char *match_driver;
|
|
char *match_vendor;
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
} XConfigInputClassRec, *XConfigInputClassPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Input Reference; used by layout to store list of XConfigInputPtrs
|
|
*/
|
|
|
|
typedef struct __xconfigconfinputrefrec {
|
|
struct __xconfigconfinputrefrec *next;
|
|
XConfigInputPtr input;
|
|
char *input_name;
|
|
XConfigOptionPtr options;
|
|
} XConfigInputrefRec, *XConfigInputrefPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Adjacency structure; used by layout to store list of
|
|
* XConfigScreenPtrs
|
|
*/
|
|
|
|
/* Values for adj_where */
|
|
#define CONF_ADJ_OBSOLETE -1
|
|
#define CONF_ADJ_ABSOLUTE 0
|
|
#define CONF_ADJ_RIGHTOF 1
|
|
#define CONF_ADJ_LEFTOF 2
|
|
#define CONF_ADJ_ABOVE 3
|
|
#define CONF_ADJ_BELOW 4
|
|
#define CONF_ADJ_RELATIVE 5
|
|
|
|
typedef struct __xconfigconfadjacencyrec {
|
|
struct __xconfigconfadjacencyrec *next;
|
|
int scrnum;
|
|
XConfigScreenPtr screen;
|
|
char *screen_name;
|
|
XConfigScreenPtr top;
|
|
char *top_name;
|
|
XConfigScreenPtr bottom;
|
|
char *bottom_name;
|
|
XConfigScreenPtr left;
|
|
char *left_name;
|
|
XConfigScreenPtr right;
|
|
char *right_name;
|
|
int where;
|
|
int x;
|
|
int y;
|
|
char *refscreen;
|
|
} XConfigAdjacencyRec, *XConfigAdjacencyPtr;
|
|
|
|
|
|
|
|
/*
|
|
* XConfigInactiveRec XXX what is this?
|
|
*/
|
|
|
|
typedef struct __xconfigconfinactiverec {
|
|
struct __xconfigconfinactiverec *next;
|
|
char *device_name;
|
|
XConfigDevicePtr device;
|
|
} XConfigInactiveRec, *XConfigInactivePtr;
|
|
|
|
|
|
|
|
/*
|
|
* Layout Section
|
|
*/
|
|
|
|
typedef struct __xconfigconflayoutrec {
|
|
struct __xconfigconflayoutrec *next;
|
|
char *identifier;
|
|
XConfigAdjacencyPtr adjacencies;
|
|
XConfigInactivePtr inactives;
|
|
XConfigInputrefPtr inputs;
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
} XConfigLayoutRec, *XConfigLayoutPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Vendor Section XXX what is this?
|
|
*/
|
|
|
|
typedef struct __xconfigconfvendsubrec {
|
|
struct __xconfigconfvendsubrec *next;
|
|
char *name;
|
|
char *identifier;
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
} XConfigVendSubRec, *XConfigVendSubPtr;
|
|
|
|
typedef struct __xconfigconfvendorrec {
|
|
struct __xconfigconfvendorrec *next;
|
|
char *identifier;
|
|
XConfigOptionPtr options;
|
|
XConfigVendSubPtr subs;
|
|
char *comment;
|
|
} XConfigVendorRec, *XConfigVendorPtr;
|
|
|
|
|
|
|
|
/*
|
|
* DRI section
|
|
*/
|
|
|
|
typedef struct __xconfigconfbuffersrec {
|
|
struct __xconfigconfbuffersrec *next;
|
|
int count;
|
|
int size;
|
|
char *flags;
|
|
char *comment;
|
|
} XConfigBuffersRec, *XConfigBuffersPtr;
|
|
|
|
typedef struct {
|
|
char *group_name;
|
|
int group;
|
|
int mode;
|
|
XConfigBuffersPtr buffers;
|
|
char * comment;
|
|
} XConfigDRIRec, *XConfigDRIPtr;
|
|
|
|
|
|
|
|
/*
|
|
* ServerFlags Section
|
|
*/
|
|
|
|
typedef struct {
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
} XConfigFlagsRec, *XConfigFlagsPtr;
|
|
|
|
|
|
|
|
/*
|
|
* Extensions Section
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
XConfigOptionPtr options;
|
|
char *comment;
|
|
}
|
|
XConfigExtensionsRec, *XConfigExtensionsPtr;
|
|
|
|
|
|
/*
|
|
* Configuration file structure
|
|
*/
|
|
|
|
typedef struct {
|
|
XConfigFilesPtr files;
|
|
XConfigModulePtr modules;
|
|
XConfigFlagsPtr flags;
|
|
XConfigVideoAdaptorPtr videoadaptors;
|
|
XConfigModesPtr modes;
|
|
XConfigMonitorPtr monitors;
|
|
XConfigDevicePtr devices;
|
|
XConfigScreenPtr screens;
|
|
XConfigInputPtr inputs;
|
|
XConfigInputClassPtr inputclasses;
|
|
XConfigLayoutPtr layouts;
|
|
XConfigVendorPtr vendors;
|
|
XConfigDRIPtr dri;
|
|
XConfigExtensionsPtr extensions;
|
|
char *comment;
|
|
char *filename;
|
|
} XConfigRec, *XConfigPtr;
|
|
|
|
typedef struct {
|
|
int token; /* id of the token */
|
|
char *name; /* pointer to the LOWERCASED name */
|
|
} XConfigSymTabRec, *XConfigSymTabPtr;
|
|
|
|
|
|
/*
|
|
* data structure containing options; used during generation of X
|
|
* config, and when sanitizing an existing config
|
|
*/
|
|
|
|
typedef struct {
|
|
char *x_project_root;
|
|
char *keyboard;
|
|
char *mouse;
|
|
char *keyboard_driver;
|
|
|
|
int supports_extension_section;
|
|
int autoloads_glx;
|
|
int xinerama_plus_composite_works;
|
|
const char *compositeExtensionName;
|
|
|
|
} GenerateOptions;
|
|
|
|
|
|
/*
|
|
* Functions for open, reading, and writing XConfig files.
|
|
*/
|
|
const char *xconfigOpenConfigFile(const char *, const char *);
|
|
XConfigError xconfigReadConfigFile(XConfigPtr *);
|
|
int xconfigSanitizeConfig(XConfigPtr p, const char *screenName,
|
|
GenerateOptions *gop);
|
|
void xconfigCloseConfigFile(void);
|
|
int xconfigWriteConfigFile(const char *, XConfigPtr);
|
|
|
|
void xconfigFreeConfig(XConfigPtr *p);
|
|
|
|
/*
|
|
* Functions for searching for entries in lists
|
|
*/
|
|
|
|
XConfigDevicePtr xconfigFindDevice(const char *ident, XConfigDevicePtr p);
|
|
XConfigLayoutPtr xconfigFindLayout(const char *name, XConfigLayoutPtr list);
|
|
XConfigMonitorPtr xconfigFindMonitor(const char *ident, XConfigMonitorPtr p);
|
|
XConfigModesPtr xconfigFindModes(const char *ident, XConfigModesPtr p);
|
|
XConfigModeLinePtr xconfigFindModeLine(const char *ident,
|
|
XConfigModeLinePtr p);
|
|
XConfigScreenPtr xconfigFindScreen(const char *ident, XConfigScreenPtr p);
|
|
XConfigModePtr xconfigFindMode(const char *name, XConfigModePtr p);
|
|
XConfigInputPtr xconfigFindInput(const char *ident, XConfigInputPtr p);
|
|
XConfigInputPtr xconfigFindInputByDriver(const char *driver,
|
|
XConfigInputPtr p);
|
|
XConfigVendorPtr xconfigFindVendor(const char *name, XConfigVendorPtr list);
|
|
XConfigVideoAdaptorPtr xconfigFindVideoAdaptor(const char *ident,
|
|
XConfigVideoAdaptorPtr p);
|
|
|
|
/*
|
|
* Functions for freeing lists
|
|
*/
|
|
|
|
void xconfigFreeDeviceList(XConfigDevicePtr *ptr);
|
|
void xconfigFreeFiles(XConfigFilesPtr *p);
|
|
void xconfigFreeFlags(XConfigFlagsPtr *flags);
|
|
void xconfigFreeInputList(XConfigInputPtr *ptr);
|
|
void xconfigFreeInputClassList(XConfigInputClassPtr *ptr);
|
|
void xconfigFreeLayoutList(XConfigLayoutPtr *ptr);
|
|
void xconfigFreeAdjacencyList(XConfigAdjacencyPtr *ptr);
|
|
void xconfigFreeInputrefList(XConfigInputrefPtr *ptr);
|
|
void xconfigFreeModules(XConfigModulePtr *ptr);
|
|
void xconfigFreeMonitorList(XConfigMonitorPtr *ptr);
|
|
void xconfigFreeModesList(XConfigModesPtr *ptr);
|
|
void xconfigFreeModeLineList(XConfigModeLinePtr *ptr);
|
|
void xconfigFreeOptionList(XConfigOptionPtr *opt);
|
|
void xconfigFreeScreenList(XConfigScreenPtr *ptr);
|
|
void xconfigFreeAdaptorLinkList(XConfigAdaptorLinkPtr *ptr);
|
|
void xconfigFreeDisplayList(XConfigDisplayPtr *ptr);
|
|
void xconfigFreeModeList(XConfigModePtr *ptr);
|
|
void xconfigFreeVendorList(XConfigVendorPtr *p);
|
|
void xconfigFreeVendorSubList(XConfigVendSubPtr *ptr);
|
|
void xconfigFreeVideoAdaptorList(XConfigVideoAdaptorPtr *ptr);
|
|
void xconfigFreeVideoPortList(XConfigVideoPortPtr *ptr);
|
|
void xconfigFreeBuffersList (XConfigBuffersPtr *ptr);
|
|
void xconfigFreeDRI(XConfigDRIPtr *ptr);
|
|
void xconfigFreeExtensions(XConfigExtensionsPtr *ptr);
|
|
void xconfigFreeModesLinkList(XConfigModesLinkPtr *ptr);
|
|
|
|
|
|
|
|
/*
|
|
* item/list manipulation
|
|
*/
|
|
|
|
void xconfigAddListItem(GenericListPtr *pHead, GenericListPtr c_new);
|
|
void xconfigRemoveListItem(GenericListPtr *pHead, GenericListPtr item);
|
|
int xconfigItemNotSublist(GenericListPtr list_1, GenericListPtr list_2);
|
|
char *xconfigAddComment(char *cur, char *add);
|
|
void xconfigAddNewLoadDirective(XConfigLoadPtr *pHead,
|
|
char *name, int type,
|
|
XConfigOptionPtr opts, int do_token);
|
|
void xconfigRemoveLoadDirective(XConfigLoadPtr *pHead, XConfigLoadPtr load);
|
|
|
|
/*
|
|
* Functions for manipulating Options
|
|
*/
|
|
|
|
void xconfigAddNewOption(XConfigOptionPtr *pHead,
|
|
const char *name, const char *val);
|
|
void xconfigRemoveOption(XConfigOptionPtr *pHead, XConfigOptionPtr opt);
|
|
void xconfigRemoveNamedOption(XConfigOptionPtr *head, const char *name,
|
|
char **comments);
|
|
|
|
XConfigOptionPtr xconfigOptionListDup(XConfigOptionPtr opt);
|
|
char *xconfigOptionName(XConfigOptionPtr opt);
|
|
char *xconfigOptionValue(XConfigOptionPtr opt);
|
|
XConfigOptionPtr xconfigNewOption(const char *name, const char *value);
|
|
XConfigOptionPtr xconfigNextOption(XConfigOptionPtr list);
|
|
XConfigOptionPtr xconfigFindOption(XConfigOptionPtr list, const char *name);
|
|
char *xconfigFindOptionValue(XConfigOptionPtr list,
|
|
const char *name);
|
|
int xconfigFindOptionBoolean (XConfigOptionPtr,
|
|
const char *name);
|
|
XConfigOptionPtr xconfigOptionListMerge(XConfigOptionPtr head,
|
|
XConfigOptionPtr tail);
|
|
|
|
/*
|
|
* Miscellaneous utility routines
|
|
*/
|
|
|
|
char *xconfigStrdup(const char *s);
|
|
char *xconfigStrcat(const char *str, ...);
|
|
int xconfigNameCompare(const char *s1, const char *s2);
|
|
int xconfigModelineCompare(XConfigModeLinePtr m1, XConfigModeLinePtr m2);
|
|
char *xconfigULongToString(unsigned long i);
|
|
XConfigOptionPtr xconfigParseOption(XConfigOptionPtr head);
|
|
void xconfigPrintOptionList(FILE *fp, XConfigOptionPtr list, int tabs);
|
|
int xconfigParsePciBusString(const char *busID,
|
|
int *bus, int *device, int *func);
|
|
void xconfigFormatPciBusString(char *str, int len,
|
|
int domain, int bus, int device, int func);
|
|
|
|
void xconfigAddDisplay(XConfigDisplayPtr *pHead, const int depth);
|
|
|
|
void xconfigAddMode(XConfigModePtr *pHead, const char *name);
|
|
void xconfigRemoveMode(XConfigModePtr *pHead, const char *name);
|
|
|
|
XConfigPtr xconfigGenerate(GenerateOptions *gop);
|
|
|
|
XConfigScreenPtr xconfigGenerateAddScreen(XConfigPtr config,
|
|
int bus, int domain, int slot,
|
|
char *boardname, int count,
|
|
const char *driver,
|
|
const char *vendor);
|
|
|
|
XConfigDevicePtr add_device(XConfigPtr config, int bus, int domain,
|
|
int slot, char *boardname, int count,
|
|
const char *driver, const char *vendor, int active);
|
|
|
|
void xconfigAddInactiveDevice(XConfigPtr config, XConfigLayoutPtr layout,
|
|
int device_n);
|
|
|
|
void xconfigGenerateAssignScreenAdjacencies(XConfigLayoutPtr layout);
|
|
|
|
void xconfigGeneratePrintPossibleMice(void);
|
|
void xconfigGeneratePrintPossibleKeyboards(void);
|
|
void xconfigGenerateLoadDefaultOptions(GenerateOptions *gop);
|
|
|
|
void xconfigGetXServerInUse(GenerateOptions *gop);
|
|
|
|
char *xconfigValidateComposite(XConfigPtr config,
|
|
GenerateOptions *gop,
|
|
int composite_enabled,
|
|
int xinerama_enabled,
|
|
int depth,
|
|
int overlay_enabled,
|
|
int cioverlay_enabled,
|
|
int ubb_enabled,
|
|
int stereo);
|
|
|
|
/*
|
|
* check (and update, if necessary) the inputs in the specified layout
|
|
* section
|
|
*/
|
|
|
|
int xconfigCheckCoreInputDevices(GenerateOptions *gop,
|
|
XConfigPtr config, XConfigLayoutPtr layout);
|
|
|
|
|
|
/*
|
|
* X config tools
|
|
*/
|
|
|
|
int xconfigMergeConfigs(XConfigPtr dstConfig, XConfigPtr srcConfig);
|
|
|
|
|
|
|
|
#endif /* _xf86Parser_h_ */
|