1706f2543Smrg/* 2706f2543Smrg * 3706f2543Smrg * Copyright (c) 1997 Metro Link Incorporated 4706f2543Smrg * 5706f2543Smrg * Permission is hereby granted, free of charge, to any person obtaining a 6706f2543Smrg * copy of this software and associated documentation files (the "Software"), 7706f2543Smrg * to deal in the Software without restriction, including without limitation 8706f2543Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 9706f2543Smrg * and/or sell copies of the Software, and to permit persons to whom the 10706f2543Smrg * Software is furnished to do so, subject to the following conditions: 11706f2543Smrg * 12706f2543Smrg * The above copyright notice and this permission notice shall be included in 13706f2543Smrg * all copies or substantial portions of the Software. 14706f2543Smrg * 15706f2543Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16706f2543Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17706f2543Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18706f2543Smrg * THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 19706f2543Smrg * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF 20706f2543Smrg * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21706f2543Smrg * SOFTWARE. 22706f2543Smrg * 23706f2543Smrg * Except as contained in this notice, the name of the Metro Link shall not be 24706f2543Smrg * used in advertising or otherwise to promote the sale, use or other dealings 25706f2543Smrg * in this Software without prior written authorization from Metro Link. 26706f2543Smrg * 27706f2543Smrg */ 28706f2543Smrg/* 29706f2543Smrg * Copyright (c) 1997-2003 by The XFree86 Project, Inc. 30706f2543Smrg * 31706f2543Smrg * Permission is hereby granted, free of charge, to any person obtaining a 32706f2543Smrg * copy of this software and associated documentation files (the "Software"), 33706f2543Smrg * to deal in the Software without restriction, including without limitation 34706f2543Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 35706f2543Smrg * and/or sell copies of the Software, and to permit persons to whom the 36706f2543Smrg * Software is furnished to do so, subject to the following conditions: 37706f2543Smrg * 38706f2543Smrg * The above copyright notice and this permission notice shall be included in 39706f2543Smrg * all copies or substantial portions of the Software. 40706f2543Smrg * 41706f2543Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 42706f2543Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 43706f2543Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 44706f2543Smrg * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 45706f2543Smrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 46706f2543Smrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 47706f2543Smrg * OTHER DEALINGS IN THE SOFTWARE. 48706f2543Smrg * 49706f2543Smrg * Except as contained in this notice, the name of the copyright holder(s) 50706f2543Smrg * and author(s) shall not be used in advertising or otherwise to promote 51706f2543Smrg * the sale, use or other dealings in this Software without prior written 52706f2543Smrg * authorization from the copyright holder(s) and author(s). 53706f2543Smrg */ 54706f2543Smrg 55706f2543Smrg 56706f2543Smrg/* 57706f2543Smrg * This file contains the external interfaces for the XFree86 configuration 58706f2543Smrg * file parser. 59706f2543Smrg */ 60706f2543Smrg#ifdef HAVE_XORG_CONFIG_H 61706f2543Smrg#include <xorg-config.h> 62706f2543Smrg#endif 63706f2543Smrg 64706f2543Smrg#ifndef _xf86Parser_h_ 65706f2543Smrg#define _xf86Parser_h_ 66706f2543Smrg 67706f2543Smrg#include <X11/Xdefs.h> 68706f2543Smrg#include "xf86Optrec.h" 69706f2543Smrg#include "list.h" 70706f2543Smrg 71706f2543Smrg#define HAVE_PARSER_DECLS 72706f2543Smrg 73706f2543Smrgtypedef struct 74706f2543Smrg{ 75706f2543Smrg char *file_logfile; 76706f2543Smrg char *file_modulepath; 77706f2543Smrg char *file_fontpath; 78706f2543Smrg char *file_comment; 79706f2543Smrg char *file_xkbdir; 80706f2543Smrg} 81706f2543SmrgXF86ConfFilesRec, *XF86ConfFilesPtr; 82706f2543Smrg 83706f2543Smrg/* Values for load_type */ 84706f2543Smrg#define XF86_LOAD_MODULE 0 85706f2543Smrg#define XF86_LOAD_DRIVER 1 86706f2543Smrg#define XF86_DISABLE_MODULE 2 87706f2543Smrg 88706f2543Smrgtypedef struct 89706f2543Smrg{ 90706f2543Smrg GenericListRec list; 91706f2543Smrg int load_type; 92706f2543Smrg char *load_name; 93706f2543Smrg XF86OptionPtr load_opt; 94706f2543Smrg char *load_comment; 95706f2543Smrg int ignore; 96706f2543Smrg} 97706f2543SmrgXF86LoadRec, *XF86LoadPtr; 98706f2543Smrg 99706f2543Smrgtypedef struct 100706f2543Smrg{ 101706f2543Smrg XF86LoadPtr mod_load_lst; 102706f2543Smrg XF86LoadPtr mod_disable_lst; 103706f2543Smrg char *mod_comment; 104706f2543Smrg} 105706f2543SmrgXF86ConfModuleRec, *XF86ConfModulePtr; 106706f2543Smrg 107706f2543Smrg#define CONF_IMPLICIT_KEYBOARD "Implicit Core Keyboard" 108706f2543Smrg 109706f2543Smrg#define CONF_IMPLICIT_POINTER "Implicit Core Pointer" 110706f2543Smrg 111706f2543Smrg#define XF86CONF_PHSYNC 0x0001 112706f2543Smrg#define XF86CONF_NHSYNC 0x0002 113706f2543Smrg#define XF86CONF_PVSYNC 0x0004 114706f2543Smrg#define XF86CONF_NVSYNC 0x0008 115706f2543Smrg#define XF86CONF_INTERLACE 0x0010 116706f2543Smrg#define XF86CONF_DBLSCAN 0x0020 117706f2543Smrg#define XF86CONF_CSYNC 0x0040 118706f2543Smrg#define XF86CONF_PCSYNC 0x0080 119706f2543Smrg#define XF86CONF_NCSYNC 0x0100 120706f2543Smrg#define XF86CONF_HSKEW 0x0200 /* hskew provided */ 121706f2543Smrg#define XF86CONF_BCAST 0x0400 122706f2543Smrg#define XF86CONF_VSCAN 0x1000 123706f2543Smrg 124706f2543Smrgtypedef struct 125706f2543Smrg{ 126706f2543Smrg GenericListRec list; 127706f2543Smrg char *ml_identifier; 128706f2543Smrg int ml_clock; 129706f2543Smrg int ml_hdisplay; 130706f2543Smrg int ml_hsyncstart; 131706f2543Smrg int ml_hsyncend; 132706f2543Smrg int ml_htotal; 133706f2543Smrg int ml_vdisplay; 134706f2543Smrg int ml_vsyncstart; 135706f2543Smrg int ml_vsyncend; 136706f2543Smrg int ml_vtotal; 137706f2543Smrg int ml_vscan; 138706f2543Smrg int ml_flags; 139706f2543Smrg int ml_hskew; 140706f2543Smrg char *ml_comment; 141706f2543Smrg} 142706f2543SmrgXF86ConfModeLineRec, *XF86ConfModeLinePtr; 143706f2543Smrg 144706f2543Smrgtypedef struct 145706f2543Smrg{ 146706f2543Smrg GenericListRec list; 147706f2543Smrg char *vp_identifier; 148706f2543Smrg XF86OptionPtr vp_option_lst; 149706f2543Smrg char *vp_comment; 150706f2543Smrg} 151706f2543SmrgXF86ConfVideoPortRec, *XF86ConfVideoPortPtr; 152706f2543Smrg 153706f2543Smrgtypedef struct 154706f2543Smrg{ 155706f2543Smrg GenericListRec list; 156706f2543Smrg char *va_identifier; 157706f2543Smrg char *va_vendor; 158706f2543Smrg char *va_board; 159706f2543Smrg char *va_busid; 160706f2543Smrg char *va_driver; 161706f2543Smrg XF86OptionPtr va_option_lst; 162706f2543Smrg XF86ConfVideoPortPtr va_port_lst; 163706f2543Smrg char *va_fwdref; 164706f2543Smrg char *va_comment; 165706f2543Smrg} 166706f2543SmrgXF86ConfVideoAdaptorRec, *XF86ConfVideoAdaptorPtr; 167706f2543Smrg 168706f2543Smrg#define CONF_MAX_HSYNC 8 169706f2543Smrg#define CONF_MAX_VREFRESH 8 170706f2543Smrg 171706f2543Smrgtypedef struct 172706f2543Smrg{ 173706f2543Smrg float hi, lo; 174706f2543Smrg} 175706f2543Smrgparser_range; 176706f2543Smrg 177706f2543Smrgtypedef struct 178706f2543Smrg{ 179706f2543Smrg int red, green, blue; 180706f2543Smrg} 181706f2543Smrgparser_rgb; 182706f2543Smrg 183706f2543Smrgtypedef struct 184706f2543Smrg{ 185706f2543Smrg GenericListRec list; 186706f2543Smrg char *modes_identifier; 187706f2543Smrg XF86ConfModeLinePtr mon_modeline_lst; 188706f2543Smrg char *modes_comment; 189706f2543Smrg} 190706f2543SmrgXF86ConfModesRec, *XF86ConfModesPtr; 191706f2543Smrg 192706f2543Smrgtypedef struct 193706f2543Smrg{ 194706f2543Smrg GenericListRec list; 195706f2543Smrg char *ml_modes_str; 196706f2543Smrg XF86ConfModesPtr ml_modes; 197706f2543Smrg} 198706f2543SmrgXF86ConfModesLinkRec, *XF86ConfModesLinkPtr; 199706f2543Smrg 200706f2543Smrgtypedef struct 201706f2543Smrg{ 202706f2543Smrg GenericListRec list; 203706f2543Smrg char *mon_identifier; 204706f2543Smrg char *mon_vendor; 205706f2543Smrg char *mon_modelname; 206706f2543Smrg int mon_width; /* in mm */ 207706f2543Smrg int mon_height; /* in mm */ 208706f2543Smrg XF86ConfModeLinePtr mon_modeline_lst; 209706f2543Smrg int mon_n_hsync; 210706f2543Smrg parser_range mon_hsync[CONF_MAX_HSYNC]; 211706f2543Smrg int mon_n_vrefresh; 212706f2543Smrg parser_range mon_vrefresh[CONF_MAX_VREFRESH]; 213706f2543Smrg float mon_gamma_red; 214706f2543Smrg float mon_gamma_green; 215706f2543Smrg float mon_gamma_blue; 216706f2543Smrg XF86OptionPtr mon_option_lst; 217706f2543Smrg XF86ConfModesLinkPtr mon_modes_sect_lst; 218706f2543Smrg char *mon_comment; 219706f2543Smrg} 220706f2543SmrgXF86ConfMonitorRec, *XF86ConfMonitorPtr; 221706f2543Smrg 222706f2543Smrg#define CONF_MAXDACSPEEDS 4 223706f2543Smrg#define CONF_MAXCLOCKS 128 224706f2543Smrg 225706f2543Smrgtypedef struct 226706f2543Smrg{ 227706f2543Smrg GenericListRec list; 228706f2543Smrg char *dev_identifier; 229706f2543Smrg char *dev_vendor; 230706f2543Smrg char *dev_board; 231706f2543Smrg char *dev_chipset; 232706f2543Smrg char *dev_busid; 233706f2543Smrg char *dev_card; 234706f2543Smrg char *dev_driver; 235706f2543Smrg char *dev_ramdac; 236706f2543Smrg int dev_dacSpeeds[CONF_MAXDACSPEEDS]; 237706f2543Smrg int dev_videoram; 238706f2543Smrg int dev_textclockfreq; 239706f2543Smrg unsigned long dev_bios_base; 240706f2543Smrg unsigned long dev_mem_base; 241706f2543Smrg unsigned long dev_io_base; 242706f2543Smrg char *dev_clockchip; 243706f2543Smrg int dev_clocks; 244706f2543Smrg int dev_clock[CONF_MAXCLOCKS]; 245706f2543Smrg int dev_chipid; 246706f2543Smrg int dev_chiprev; 247706f2543Smrg int dev_irq; 248706f2543Smrg int dev_screen; 249706f2543Smrg XF86OptionPtr dev_option_lst; 250706f2543Smrg char *dev_comment; 251706f2543Smrg} 252706f2543SmrgXF86ConfDeviceRec, *XF86ConfDevicePtr; 253706f2543Smrg 254706f2543Smrgtypedef struct 255706f2543Smrg{ 256706f2543Smrg GenericListRec list; 257706f2543Smrg char *mode_name; 258706f2543Smrg} 259706f2543SmrgXF86ModeRec, *XF86ModePtr; 260706f2543Smrg 261706f2543Smrgtypedef struct 262706f2543Smrg{ 263706f2543Smrg GenericListRec list; 264706f2543Smrg int disp_frameX0; 265706f2543Smrg int disp_frameY0; 266706f2543Smrg int disp_virtualX; 267706f2543Smrg int disp_virtualY; 268706f2543Smrg int disp_depth; 269706f2543Smrg int disp_bpp; 270706f2543Smrg char *disp_visual; 271706f2543Smrg parser_rgb disp_weight; 272706f2543Smrg parser_rgb disp_black; 273706f2543Smrg parser_rgb disp_white; 274706f2543Smrg XF86ModePtr disp_mode_lst; 275706f2543Smrg XF86OptionPtr disp_option_lst; 276706f2543Smrg char *disp_comment; 277706f2543Smrg} 278706f2543SmrgXF86ConfDisplayRec, *XF86ConfDisplayPtr; 279706f2543Smrg 280706f2543Smrgtypedef struct 281706f2543Smrg{ 282706f2543Smrg XF86OptionPtr flg_option_lst; 283706f2543Smrg char *flg_comment; 284706f2543Smrg} 285706f2543SmrgXF86ConfFlagsRec, *XF86ConfFlagsPtr; 286706f2543Smrg 287706f2543Smrgtypedef struct 288706f2543Smrg{ 289706f2543Smrg GenericListRec list; 290706f2543Smrg char *al_adaptor_str; 291706f2543Smrg XF86ConfVideoAdaptorPtr al_adaptor; 292706f2543Smrg} 293706f2543SmrgXF86ConfAdaptorLinkRec, *XF86ConfAdaptorLinkPtr; 294706f2543Smrg 295706f2543Smrgtypedef struct 296706f2543Smrg{ 297706f2543Smrg GenericListRec list; 298706f2543Smrg char *scrn_identifier; 299706f2543Smrg char *scrn_obso_driver; 300706f2543Smrg int scrn_defaultdepth; 301706f2543Smrg int scrn_defaultbpp; 302706f2543Smrg int scrn_defaultfbbpp; 303706f2543Smrg char *scrn_monitor_str; 304706f2543Smrg XF86ConfMonitorPtr scrn_monitor; 305706f2543Smrg char *scrn_device_str; 306706f2543Smrg XF86ConfDevicePtr scrn_device; 307706f2543Smrg XF86ConfAdaptorLinkPtr scrn_adaptor_lst; 308706f2543Smrg XF86ConfDisplayPtr scrn_display_lst; 309706f2543Smrg XF86OptionPtr scrn_option_lst; 310706f2543Smrg char *scrn_comment; 311706f2543Smrg int scrn_virtualX, scrn_virtualY; 312706f2543Smrg} 313706f2543SmrgXF86ConfScreenRec, *XF86ConfScreenPtr; 314706f2543Smrg 315706f2543Smrgtypedef struct 316706f2543Smrg{ 317706f2543Smrg GenericListRec list; 318706f2543Smrg char *inp_identifier; 319706f2543Smrg char *inp_driver; 320706f2543Smrg XF86OptionPtr inp_option_lst; 321706f2543Smrg char *inp_comment; 322706f2543Smrg} 323706f2543SmrgXF86ConfInputRec, *XF86ConfInputPtr; 324706f2543Smrg 325706f2543Smrgtypedef struct 326706f2543Smrg{ 327706f2543Smrg GenericListRec list; 328706f2543Smrg XF86ConfInputPtr iref_inputdev; 329706f2543Smrg char *iref_inputdev_str; 330706f2543Smrg XF86OptionPtr iref_option_lst; 331706f2543Smrg} 332706f2543SmrgXF86ConfInputrefRec, *XF86ConfInputrefPtr; 333706f2543Smrg 334706f2543Smrgtypedef struct 335706f2543Smrg{ 336706f2543Smrg Bool set; 337706f2543Smrg Bool val; 338706f2543Smrg} 339706f2543Smrgxf86TriState; 340706f2543Smrg 341706f2543Smrgtypedef struct 342706f2543Smrg{ 343706f2543Smrg struct list entry; 344706f2543Smrg char **values; 345706f2543Smrg} 346706f2543Smrgxf86MatchGroup; 347706f2543Smrg 348706f2543Smrgtypedef struct 349706f2543Smrg{ 350706f2543Smrg GenericListRec list; 351706f2543Smrg char *identifier; 352706f2543Smrg char *driver; 353706f2543Smrg struct list match_product; 354706f2543Smrg struct list match_vendor; 355706f2543Smrg struct list match_device; 356706f2543Smrg struct list match_os; 357706f2543Smrg struct list match_pnpid; 358706f2543Smrg struct list match_usbid; 359706f2543Smrg struct list match_driver; 360706f2543Smrg struct list match_tag; 361706f2543Smrg xf86TriState is_keyboard; 362706f2543Smrg xf86TriState is_pointer; 363706f2543Smrg xf86TriState is_joystick; 364706f2543Smrg xf86TriState is_tablet; 365706f2543Smrg xf86TriState is_touchpad; 366706f2543Smrg xf86TriState is_touchscreen; 367706f2543Smrg XF86OptionPtr option_lst; 368706f2543Smrg char *comment; 369706f2543Smrg} 370706f2543SmrgXF86ConfInputClassRec, *XF86ConfInputClassPtr; 371706f2543Smrg 372706f2543Smrg/* Values for adj_where */ 373706f2543Smrg#define CONF_ADJ_OBSOLETE -1 374706f2543Smrg#define CONF_ADJ_ABSOLUTE 0 375706f2543Smrg#define CONF_ADJ_RIGHTOF 1 376706f2543Smrg#define CONF_ADJ_LEFTOF 2 377706f2543Smrg#define CONF_ADJ_ABOVE 3 378706f2543Smrg#define CONF_ADJ_BELOW 4 379706f2543Smrg#define CONF_ADJ_RELATIVE 5 380706f2543Smrg 381706f2543Smrgtypedef struct 382706f2543Smrg{ 383706f2543Smrg GenericListRec list; 384706f2543Smrg int adj_scrnum; 385706f2543Smrg XF86ConfScreenPtr adj_screen; 386706f2543Smrg char *adj_screen_str; 387706f2543Smrg XF86ConfScreenPtr adj_top; 388706f2543Smrg char *adj_top_str; 389706f2543Smrg XF86ConfScreenPtr adj_bottom; 390706f2543Smrg char *adj_bottom_str; 391706f2543Smrg XF86ConfScreenPtr adj_left; 392706f2543Smrg char *adj_left_str; 393706f2543Smrg XF86ConfScreenPtr adj_right; 394706f2543Smrg char *adj_right_str; 395706f2543Smrg int adj_where; 396706f2543Smrg int adj_x; 397706f2543Smrg int adj_y; 398706f2543Smrg char *adj_refscreen; 399706f2543Smrg} 400706f2543SmrgXF86ConfAdjacencyRec, *XF86ConfAdjacencyPtr; 401706f2543Smrg 402706f2543Smrgtypedef struct 403706f2543Smrg{ 404706f2543Smrg GenericListRec list; 405706f2543Smrg char *inactive_device_str; 406706f2543Smrg XF86ConfDevicePtr inactive_device; 407706f2543Smrg} 408706f2543SmrgXF86ConfInactiveRec, *XF86ConfInactivePtr; 409706f2543Smrg 410706f2543Smrgtypedef struct 411706f2543Smrg{ 412706f2543Smrg GenericListRec list; 413706f2543Smrg char *lay_identifier; 414706f2543Smrg XF86ConfAdjacencyPtr lay_adjacency_lst; 415706f2543Smrg XF86ConfInactivePtr lay_inactive_lst; 416706f2543Smrg XF86ConfInputrefPtr lay_input_lst; 417706f2543Smrg XF86OptionPtr lay_option_lst; 418706f2543Smrg char *lay_comment; 419706f2543Smrg} 420706f2543SmrgXF86ConfLayoutRec, *XF86ConfLayoutPtr; 421706f2543Smrg 422706f2543Smrgtypedef struct 423706f2543Smrg{ 424706f2543Smrg GenericListRec list; 425706f2543Smrg char *vs_name; 426706f2543Smrg char *vs_identifier; 427706f2543Smrg XF86OptionPtr vs_option_lst; 428706f2543Smrg char *vs_comment; 429706f2543Smrg} 430706f2543SmrgXF86ConfVendSubRec, *XF86ConfVendSubPtr; 431706f2543Smrg 432706f2543Smrgtypedef struct 433706f2543Smrg{ 434706f2543Smrg GenericListRec list; 435706f2543Smrg char *vnd_identifier; 436706f2543Smrg XF86OptionPtr vnd_option_lst; 437706f2543Smrg XF86ConfVendSubPtr vnd_sub_lst; 438706f2543Smrg char *vnd_comment; 439706f2543Smrg} 440706f2543SmrgXF86ConfVendorRec, *XF86ConfVendorPtr; 441706f2543Smrg 442706f2543Smrgtypedef struct 443706f2543Smrg{ 444706f2543Smrg char *dri_group_name; 445706f2543Smrg int dri_group; 446706f2543Smrg int dri_mode; 447706f2543Smrg char *dri_comment; 448706f2543Smrg} 449706f2543SmrgXF86ConfDRIRec, *XF86ConfDRIPtr; 450706f2543Smrg 451706f2543Smrgtypedef struct 452706f2543Smrg{ 453706f2543Smrg XF86OptionPtr ext_option_lst; 454706f2543Smrg char *extensions_comment; 455706f2543Smrg} 456706f2543SmrgXF86ConfExtensionsRec, *XF86ConfExtensionsPtr; 457706f2543Smrg 458706f2543Smrgtypedef struct 459706f2543Smrg{ 460706f2543Smrg XF86ConfFilesPtr conf_files; 461706f2543Smrg XF86ConfModulePtr conf_modules; 462706f2543Smrg XF86ConfFlagsPtr conf_flags; 463706f2543Smrg XF86ConfVideoAdaptorPtr conf_videoadaptor_lst; 464706f2543Smrg XF86ConfModesPtr conf_modes_lst; 465706f2543Smrg XF86ConfMonitorPtr conf_monitor_lst; 466706f2543Smrg XF86ConfDevicePtr conf_device_lst; 467706f2543Smrg XF86ConfScreenPtr conf_screen_lst; 468706f2543Smrg XF86ConfInputPtr conf_input_lst; 469706f2543Smrg XF86ConfInputClassPtr conf_inputclass_lst; 470706f2543Smrg XF86ConfLayoutPtr conf_layout_lst; 471706f2543Smrg XF86ConfVendorPtr conf_vendor_lst; 472706f2543Smrg XF86ConfDRIPtr conf_dri; 473706f2543Smrg XF86ConfExtensionsPtr conf_extensions; 474706f2543Smrg char *conf_comment; 475706f2543Smrg} 476706f2543SmrgXF86ConfigRec, *XF86ConfigPtr; 477706f2543Smrg 478706f2543Smrgtypedef struct 479706f2543Smrg{ 480706f2543Smrg int token; /* id of the token */ 481706f2543Smrg char *name; /* pointer to the LOWERCASED name */ 482706f2543Smrg} 483706f2543Smrgxf86ConfigSymTabRec, *xf86ConfigSymTabPtr; 484706f2543Smrg 485706f2543Smrg/* 486706f2543Smrg * prototypes for public functions 487706f2543Smrg */ 488706f2543Smrgextern void xf86initConfigFiles(void); 489706f2543Smrgextern const char *xf86openConfigFile(const char *path, const char *cmdline, 490706f2543Smrg const char *projroot); 491706f2543Smrgextern const char *xf86openConfigDirFiles(const char *path, const char *cmdline, 492706f2543Smrg const char *projroot); 493706f2543Smrgextern void xf86setBuiltinConfig(const char *config[]); 494706f2543Smrgextern XF86ConfigPtr xf86readConfigFile(void); 495706f2543Smrgextern void xf86closeConfigFile(void); 496706f2543Smrgextern void xf86freeConfig(XF86ConfigPtr p); 497706f2543Smrgextern int xf86writeConfigFile(const char *, XF86ConfigPtr); 498706f2543Smrgextern _X_EXPORT XF86ConfDevicePtr xf86findDevice(const char *ident, XF86ConfDevicePtr p); 499706f2543Smrgextern _X_EXPORT XF86ConfDevicePtr xf86findDeviceByDriver(const char *driver, XF86ConfDevicePtr p); 500706f2543Smrgextern _X_EXPORT XF86ConfLayoutPtr xf86findLayout(const char *name, XF86ConfLayoutPtr list); 501706f2543Smrgextern _X_EXPORT XF86ConfMonitorPtr xf86findMonitor(const char *ident, XF86ConfMonitorPtr p); 502706f2543Smrgextern _X_EXPORT XF86ConfModesPtr xf86findModes(const char *ident, XF86ConfModesPtr p); 503706f2543Smrgextern _X_EXPORT XF86ConfModeLinePtr xf86findModeLine(const char *ident, XF86ConfModeLinePtr p); 504706f2543Smrgextern _X_EXPORT XF86ConfScreenPtr xf86findScreen(const char *ident, XF86ConfScreenPtr p); 505706f2543Smrgextern _X_EXPORT XF86ConfInputPtr xf86findInput(const char *ident, XF86ConfInputPtr p); 506706f2543Smrgextern _X_EXPORT XF86ConfInputPtr xf86findInputByDriver(const char *driver, XF86ConfInputPtr p); 507706f2543Smrgextern _X_EXPORT XF86ConfVideoAdaptorPtr xf86findVideoAdaptor(const char *ident, 508706f2543Smrg XF86ConfVideoAdaptorPtr p); 509706f2543Smrgextern int xf86layoutAddInputDevices(XF86ConfigPtr config, XF86ConfLayoutPtr layout); 510706f2543Smrg 511706f2543Smrgextern _X_EXPORT GenericListPtr xf86addListItem(GenericListPtr head, GenericListPtr c_new); 512706f2543Smrgextern _X_EXPORT int xf86itemNotSublist(GenericListPtr list_1, GenericListPtr list_2); 513706f2543Smrg 514706f2543Smrgextern _X_EXPORT int xf86pathIsAbsolute(const char *path); 515706f2543Smrgextern _X_EXPORT int xf86pathIsSafe(const char *path); 516706f2543Smrgextern _X_EXPORT char *xf86addComment(char *cur, char *add); 517706f2543Smrgextern _X_EXPORT Bool xf86getBoolValue(Bool *val, const char *str); 518706f2543Smrg 519706f2543Smrg#endif /* _xf86Parser_h_ */ 520