VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.18.0/xf86Parser.h@ 83531

Last change on this file since 83531 was 58634, checked in by vboxsync, 9 years ago

Additions/x11: added header files for building X.Org video driver against X.Org Server 1.18.

  • Property svn:eol-style set to native
File size: 15.0 KB
Line 
1/*
2 *
3 * Copyright (c) 1997 Metro Link Incorporated
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
20 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 * SOFTWARE.
22 *
23 * Except as contained in this notice, the name of the Metro Link shall not be
24 * used in advertising or otherwise to promote the sale, use or other dealings
25 * in this Software without prior written authorization from Metro Link.
26 *
27 */
28/*
29 * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
30 *
31 * Permission is hereby granted, free of charge, to any person obtaining a
32 * copy of this software and associated documentation files (the "Software"),
33 * to deal in the Software without restriction, including without limitation
34 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
35 * and/or sell copies of the Software, and to permit persons to whom the
36 * Software is furnished to do so, subject to the following conditions:
37 *
38 * The above copyright notice and this permission notice shall be included in
39 * all copies or substantial portions of the Software.
40 *
41 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
42 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
44 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
45 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
46 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
47 * OTHER DEALINGS IN THE SOFTWARE.
48 *
49 * Except as contained in this notice, the name of the copyright holder(s)
50 * and author(s) shall not be used in advertising or otherwise to promote
51 * the sale, use or other dealings in this Software without prior written
52 * authorization from the copyright holder(s) and author(s).
53 */
54
55/*
56 * This file contains the external interfaces for the XFree86 configuration
57 * file parser.
58 */
59#ifdef HAVE_XORG_CONFIG_H
60#include <xorg-config.h>
61#endif
62
63#ifndef _xf86Parser_h_
64#define _xf86Parser_h_
65
66#include <X11/Xdefs.h>
67#include "xf86Optrec.h"
68#include "list.h"
69
70#define HAVE_PARSER_DECLS
71
72typedef struct {
73 char *file_logfile;
74 char *file_modulepath;
75 char *file_fontpath;
76 char *file_comment;
77 char *file_xkbdir;
78} XF86ConfFilesRec, *XF86ConfFilesPtr;
79
80/* Values for load_type */
81#define XF86_LOAD_MODULE 0
82#define XF86_LOAD_DRIVER 1
83#define XF86_DISABLE_MODULE 2
84
85typedef struct {
86 GenericListRec list;
87 int load_type;
88 const char *load_name;
89 XF86OptionPtr load_opt;
90 char *load_comment;
91 int ignore;
92} XF86LoadRec, *XF86LoadPtr;
93
94typedef struct {
95 XF86LoadPtr mod_load_lst;
96 XF86LoadPtr mod_disable_lst;
97 char *mod_comment;
98} XF86ConfModuleRec, *XF86ConfModulePtr;
99
100#define CONF_IMPLICIT_KEYBOARD "Implicit Core Keyboard"
101
102#define CONF_IMPLICIT_POINTER "Implicit Core Pointer"
103
104#define XF86CONF_PHSYNC 0x0001
105#define XF86CONF_NHSYNC 0x0002
106#define XF86CONF_PVSYNC 0x0004
107#define XF86CONF_NVSYNC 0x0008
108#define XF86CONF_INTERLACE 0x0010
109#define XF86CONF_DBLSCAN 0x0020
110#define XF86CONF_CSYNC 0x0040
111#define XF86CONF_PCSYNC 0x0080
112#define XF86CONF_NCSYNC 0x0100
113#define XF86CONF_HSKEW 0x0200 /* hskew provided */
114#define XF86CONF_BCAST 0x0400
115#define XF86CONF_VSCAN 0x1000
116
117typedef struct {
118 GenericListRec list;
119 const char *ml_identifier;
120 int ml_clock;
121 int ml_hdisplay;
122 int ml_hsyncstart;
123 int ml_hsyncend;
124 int ml_htotal;
125 int ml_vdisplay;
126 int ml_vsyncstart;
127 int ml_vsyncend;
128 int ml_vtotal;
129 int ml_vscan;
130 int ml_flags;
131 int ml_hskew;
132 char *ml_comment;
133} XF86ConfModeLineRec, *XF86ConfModeLinePtr;
134
135typedef struct {
136 GenericListRec list;
137 const char *vp_identifier;
138 XF86OptionPtr vp_option_lst;
139 char *vp_comment;
140} XF86ConfVideoPortRec, *XF86ConfVideoPortPtr;
141
142typedef struct {
143 GenericListRec list;
144 const char *va_identifier;
145 const char *va_vendor;
146 const char *va_board;
147 const char *va_busid;
148 const char *va_driver;
149 XF86OptionPtr va_option_lst;
150 XF86ConfVideoPortPtr va_port_lst;
151 const char *va_fwdref;
152 char *va_comment;
153} XF86ConfVideoAdaptorRec, *XF86ConfVideoAdaptorPtr;
154
155#define CONF_MAX_HSYNC 8
156#define CONF_MAX_VREFRESH 8
157
158typedef struct {
159 float hi, lo;
160} parser_range;
161
162typedef struct {
163 int red, green, blue;
164} parser_rgb;
165
166typedef struct {
167 GenericListRec list;
168 const char *modes_identifier;
169 XF86ConfModeLinePtr mon_modeline_lst;
170 char *modes_comment;
171} XF86ConfModesRec, *XF86ConfModesPtr;
172
173typedef struct {
174 GenericListRec list;
175 const char *ml_modes_str;
176 XF86ConfModesPtr ml_modes;
177} XF86ConfModesLinkRec, *XF86ConfModesLinkPtr;
178
179typedef struct {
180 GenericListRec list;
181 const char *mon_identifier;
182 const char *mon_vendor;
183 char *mon_modelname;
184 int mon_width; /* in mm */
185 int mon_height; /* in mm */
186 XF86ConfModeLinePtr mon_modeline_lst;
187 int mon_n_hsync;
188 parser_range mon_hsync[CONF_MAX_HSYNC];
189 int mon_n_vrefresh;
190 parser_range mon_vrefresh[CONF_MAX_VREFRESH];
191 float mon_gamma_red;
192 float mon_gamma_green;
193 float mon_gamma_blue;
194 XF86OptionPtr mon_option_lst;
195 XF86ConfModesLinkPtr mon_modes_sect_lst;
196 char *mon_comment;
197} XF86ConfMonitorRec, *XF86ConfMonitorPtr;
198
199#define CONF_MAXDACSPEEDS 4
200#define CONF_MAXCLOCKS 128
201
202typedef struct {
203 GenericListRec list;
204 const char *dev_identifier;
205 const char *dev_vendor;
206 const char *dev_board;
207 const char *dev_chipset;
208 const char *dev_busid;
209 const char *dev_card;
210 const char *dev_driver;
211 const char *dev_ramdac;
212 int dev_dacSpeeds[CONF_MAXDACSPEEDS];
213 int dev_videoram;
214 unsigned long dev_bios_base;
215 unsigned long dev_mem_base;
216 unsigned long dev_io_base;
217 const char *dev_clockchip;
218 int dev_clocks;
219 int dev_clock[CONF_MAXCLOCKS];
220 int dev_chipid;
221 int dev_chiprev;
222 int dev_irq;
223 int dev_screen;
224 XF86OptionPtr dev_option_lst;
225 char *dev_comment;
226 char *match_seat;
227} XF86ConfDeviceRec, *XF86ConfDevicePtr;
228
229typedef struct {
230 GenericListRec list;
231 const char *mode_name;
232} XF86ModeRec, *XF86ModePtr;
233
234typedef struct {
235 GenericListRec list;
236 int disp_frameX0;
237 int disp_frameY0;
238 int disp_virtualX;
239 int disp_virtualY;
240 int disp_depth;
241 int disp_bpp;
242 const char *disp_visual;
243 parser_rgb disp_weight;
244 parser_rgb disp_black;
245 parser_rgb disp_white;
246 XF86ModePtr disp_mode_lst;
247 XF86OptionPtr disp_option_lst;
248 char *disp_comment;
249} XF86ConfDisplayRec, *XF86ConfDisplayPtr;
250
251typedef struct {
252 XF86OptionPtr flg_option_lst;
253 char *flg_comment;
254} XF86ConfFlagsRec, *XF86ConfFlagsPtr;
255
256typedef struct {
257 GenericListRec list;
258 const char *al_adaptor_str;
259 XF86ConfVideoAdaptorPtr al_adaptor;
260} XF86ConfAdaptorLinkRec, *XF86ConfAdaptorLinkPtr;
261
262#define CONF_MAXGPUDEVICES 4
263typedef struct {
264 GenericListRec list;
265 const char *scrn_identifier;
266 const char *scrn_obso_driver;
267 int scrn_defaultdepth;
268 int scrn_defaultbpp;
269 int scrn_defaultfbbpp;
270 const char *scrn_monitor_str;
271 XF86ConfMonitorPtr scrn_monitor;
272 const char *scrn_device_str;
273 XF86ConfDevicePtr scrn_device;
274 XF86ConfAdaptorLinkPtr scrn_adaptor_lst;
275 XF86ConfDisplayPtr scrn_display_lst;
276 XF86OptionPtr scrn_option_lst;
277 char *scrn_comment;
278 int scrn_virtualX, scrn_virtualY;
279 char *match_seat;
280
281 int num_gpu_devices;
282 const char *scrn_gpu_device_str[CONF_MAXGPUDEVICES];
283 XF86ConfDevicePtr scrn_gpu_devices[CONF_MAXGPUDEVICES];
284} XF86ConfScreenRec, *XF86ConfScreenPtr;
285
286typedef struct {
287 GenericListRec list;
288 char *inp_identifier;
289 char *inp_driver;
290 XF86OptionPtr inp_option_lst;
291 char *inp_comment;
292} XF86ConfInputRec, *XF86ConfInputPtr;
293
294typedef struct {
295 GenericListRec list;
296 XF86ConfInputPtr iref_inputdev;
297 char *iref_inputdev_str;
298 XF86OptionPtr iref_option_lst;
299} XF86ConfInputrefRec, *XF86ConfInputrefPtr;
300
301typedef struct {
302 Bool set;
303 Bool val;
304} xf86TriState;
305
306typedef struct {
307 struct xorg_list entry;
308 char **values;
309} xf86MatchGroup;
310
311typedef struct {
312 GenericListRec list;
313 char *identifier;
314 char *driver;
315 struct xorg_list match_product;
316 struct xorg_list match_vendor;
317 struct xorg_list match_device;
318 struct xorg_list match_os;
319 struct xorg_list match_pnpid;
320 struct xorg_list match_usbid;
321 struct xorg_list match_driver;
322 struct xorg_list match_tag;
323 struct xorg_list match_layout;
324 xf86TriState is_keyboard;
325 xf86TriState is_pointer;
326 xf86TriState is_joystick;
327 xf86TriState is_tablet;
328 xf86TriState is_touchpad;
329 xf86TriState is_touchscreen;
330 XF86OptionPtr option_lst;
331 char *comment;
332} XF86ConfInputClassRec, *XF86ConfInputClassPtr;
333
334typedef struct {
335 GenericListRec list;
336 char *identifier;
337 char *driver;
338 struct xorg_list match_driver;
339 char *comment;
340} XF86ConfOutputClassRec, *XF86ConfOutputClassPtr;
341
342/* Values for adj_where */
343#define CONF_ADJ_OBSOLETE -1
344#define CONF_ADJ_ABSOLUTE 0
345#define CONF_ADJ_RIGHTOF 1
346#define CONF_ADJ_LEFTOF 2
347#define CONF_ADJ_ABOVE 3
348#define CONF_ADJ_BELOW 4
349#define CONF_ADJ_RELATIVE 5
350
351typedef struct {
352 GenericListRec list;
353 int adj_scrnum;
354 XF86ConfScreenPtr adj_screen;
355 const char *adj_screen_str;
356 XF86ConfScreenPtr adj_top;
357 const char *adj_top_str;
358 XF86ConfScreenPtr adj_bottom;
359 const char *adj_bottom_str;
360 XF86ConfScreenPtr adj_left;
361 const char *adj_left_str;
362 XF86ConfScreenPtr adj_right;
363 const char *adj_right_str;
364 int adj_where;
365 int adj_x;
366 int adj_y;
367 const char *adj_refscreen;
368} XF86ConfAdjacencyRec, *XF86ConfAdjacencyPtr;
369
370typedef struct {
371 GenericListRec list;
372 const char *inactive_device_str;
373 XF86ConfDevicePtr inactive_device;
374} XF86ConfInactiveRec, *XF86ConfInactivePtr;
375
376typedef struct {
377 GenericListRec list;
378 const char *lay_identifier;
379 XF86ConfAdjacencyPtr lay_adjacency_lst;
380 XF86ConfInactivePtr lay_inactive_lst;
381 XF86ConfInputrefPtr lay_input_lst;
382 XF86OptionPtr lay_option_lst;
383 char *match_seat;
384 char *lay_comment;
385} XF86ConfLayoutRec, *XF86ConfLayoutPtr;
386
387typedef struct {
388 GenericListRec list;
389 const char *vs_name;
390 const char *vs_identifier;
391 XF86OptionPtr vs_option_lst;
392 char *vs_comment;
393} XF86ConfVendSubRec, *XF86ConfVendSubPtr;
394
395typedef struct {
396 GenericListRec list;
397 const char *vnd_identifier;
398 XF86OptionPtr vnd_option_lst;
399 XF86ConfVendSubPtr vnd_sub_lst;
400 char *vnd_comment;
401} XF86ConfVendorRec, *XF86ConfVendorPtr;
402
403typedef struct {
404 const char *dri_group_name;
405 int dri_group;
406 int dri_mode;
407 char *dri_comment;
408} XF86ConfDRIRec, *XF86ConfDRIPtr;
409
410typedef struct {
411 XF86OptionPtr ext_option_lst;
412 char *extensions_comment;
413} XF86ConfExtensionsRec, *XF86ConfExtensionsPtr;
414
415typedef struct {
416 XF86ConfFilesPtr conf_files;
417 XF86ConfModulePtr conf_modules;
418 XF86ConfFlagsPtr conf_flags;
419 XF86ConfVideoAdaptorPtr conf_videoadaptor_lst;
420 XF86ConfModesPtr conf_modes_lst;
421 XF86ConfMonitorPtr conf_monitor_lst;
422 XF86ConfDevicePtr conf_device_lst;
423 XF86ConfScreenPtr conf_screen_lst;
424 XF86ConfInputPtr conf_input_lst;
425 XF86ConfInputClassPtr conf_inputclass_lst;
426 XF86ConfOutputClassPtr conf_outputclass_lst;
427 XF86ConfLayoutPtr conf_layout_lst;
428 XF86ConfVendorPtr conf_vendor_lst;
429 XF86ConfDRIPtr conf_dri;
430 XF86ConfExtensionsPtr conf_extensions;
431 char *conf_comment;
432} XF86ConfigRec, *XF86ConfigPtr;
433
434typedef struct {
435 int token; /* id of the token */
436 const char *name; /* pointer to the LOWERCASED name */
437} xf86ConfigSymTabRec, *xf86ConfigSymTabPtr;
438
439/*
440 * prototypes for public functions
441 */
442extern void xf86initConfigFiles(void);
443extern char *xf86openConfigFile(const char *path, const char *cmdline,
444 const char *projroot);
445extern char *xf86openConfigDirFiles(const char *path, const char *cmdline,
446 const char *projroot);
447extern void xf86setBuiltinConfig(const char *config[]);
448extern XF86ConfigPtr xf86readConfigFile(void);
449extern void xf86closeConfigFile(void);
450extern void xf86freeConfig(XF86ConfigPtr p);
451extern int xf86writeConfigFile(const char *, XF86ConfigPtr);
452extern _X_EXPORT XF86ConfDevicePtr xf86findDevice(const char *ident,
453 XF86ConfDevicePtr p);
454extern _X_EXPORT XF86ConfLayoutPtr xf86findLayout(const char *name,
455 XF86ConfLayoutPtr list);
456extern _X_EXPORT XF86ConfMonitorPtr xf86findMonitor(const char *ident,
457 XF86ConfMonitorPtr p);
458extern _X_EXPORT XF86ConfModesPtr xf86findModes(const char *ident,
459 XF86ConfModesPtr p);
460extern _X_EXPORT XF86ConfModeLinePtr xf86findModeLine(const char *ident,
461 XF86ConfModeLinePtr p);
462extern _X_EXPORT XF86ConfScreenPtr xf86findScreen(const char *ident,
463 XF86ConfScreenPtr p);
464extern _X_EXPORT XF86ConfInputPtr xf86findInput(const char *ident,
465 XF86ConfInputPtr p);
466extern _X_EXPORT XF86ConfInputPtr xf86findInputByDriver(const char *driver,
467 XF86ConfInputPtr p);
468extern _X_EXPORT XF86ConfVideoAdaptorPtr xf86findVideoAdaptor(const char *ident,
469 XF86ConfVideoAdaptorPtr
470 p);
471extern int xf86layoutAddInputDevices(XF86ConfigPtr config,
472 XF86ConfLayoutPtr layout);
473
474extern _X_EXPORT GenericListPtr xf86addListItem(GenericListPtr head,
475 GenericListPtr c_new);
476extern _X_EXPORT int xf86itemNotSublist(GenericListPtr list_1,
477 GenericListPtr list_2);
478
479extern _X_EXPORT int xf86pathIsAbsolute(const char *path);
480extern _X_EXPORT int xf86pathIsSafe(const char *path);
481extern _X_EXPORT char *xf86addComment(char *cur, const char *add);
482extern _X_EXPORT Bool xf86getBoolValue(Bool *val, const char *str);
483
484#endif /* _xf86Parser_h_ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette