Files
nv-xconfig/nvidia-xconfig-35.6.1/XF86Config-parser/xf86Parser.h
svcmobrel-release 99b3fcb8c3 Updating prebuilts and/or headers
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
2025-03-17 16:54:06 -07:00

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_ */