b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Copyright 2002 Red Hat Inc., Durham, North Carolina.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * All Rights Reserved.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Permission is hereby granted, free of charge, to any person obtaining
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * a copy of this software and associated documentation files (the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * "Software"), to deal in the Software without restriction, including
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * without limitation on the rights to use, copy, modify, merge,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * publish, distribute, sublicense, and/or sell copies of the Software,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * and to permit persons to whom the Software is furnished to do so,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * subject to the following conditions:
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * The above copyright notice and this permission notice (including the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * next paragraph) shall be included in all copies or substantial
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * portions of the Software.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * SOFTWARE.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Authors:
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Rickard E. (Rik) Faith <faith@redhat.com>
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** \file
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Interface to DMX configuration file parser. \see dmxparse.c */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef _DMXPARSE_H_
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define _DMXPARSE_H_
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include <stdio.h> /* For FILE */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores tokens not stored in other structures (e.g., keywords and ;) */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigToken {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int token;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int line;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigToken, *DMXConfigTokenPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed strings. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigString {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int token;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int line;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *string;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _DMXConfigString *next;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigString, *DMXConfigStringPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed numbers. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigNumber {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int token;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int line;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int number;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigNumber, *DMXConfigNumberPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed pairs (e.g., x y) */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigPair {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int token;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int line;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int x;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int y;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int xsign;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int ysign;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigPair, *DMXConfigPairPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed comments not stored with a token. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigComment {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int token;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int line;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigComment, *DMXConfigCommentPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef enum {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync dmxConfigComment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync dmxConfigVirtual,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync dmxConfigDisplay,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync dmxConfigWall,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync dmxConfigOption,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync dmxConfigParam
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigType;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores a geometry specification. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigPartDim {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr dim;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr offset;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigPartDim, *DMXConfigPartDimPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores a pair of geometry specifications. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigFullDim {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPartDimPtr scrn;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPartDimPtr root;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigFullDim, *DMXConfigFullDimPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed display information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigDisplay {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Summary information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *name;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Screen Window Geometry */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int scrnWidth, scrnHeight;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int scrnX, scrnY;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int scrnXSign, scrnYSign;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Root Window Geometry */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int rootWidth, rootHeight;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int rootX, rootY;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int rootXSign, rootYSign;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Origin in global space */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int rootXOrigin, rootYOrigin;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Raw configuration information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr start;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr dname;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigFullDimPtr dim;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr origin;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr end;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigDisplay, *DMXConfigDisplayPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed wall information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigWall {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Summary information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int width, height; /* dimensions of displays */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int xwall, ywall; /* dimensions of wall, in tiles */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Raw configuration informaiton */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr start;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr wallDim;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr displayDim;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr nameList;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr end;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigWall, *DMXConfigWallPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed option information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigOption {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Summary information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *string;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Raw configuration informaiton */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr start;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr option;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr end;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigOption, *DMXConfigOptionPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed param information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigParam {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int argc;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char **argv;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr start;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr open;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr param;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr close;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr end; /* Either open/close OR end */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _DMXConfigParam *next;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigParam, *DMXConfigParamPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores options under an entry (subentry). */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigSub {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigType type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigCommentPtr comment;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigDisplayPtr display;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigWallPtr wall;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigOptionPtr option;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigParamPtr param;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _DMXConfigSub *next;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigSub, *DMXConfigSubPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Stores parsed virtual information. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigVirtual {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Summary information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *name;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int width, height;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /* Raw configuration information */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr start;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr vname;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr dim;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr open;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigSubPtr subentry;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr close;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigVirtual, *DMXConfigVirtualPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/** Heads entry storage. */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DMXConfigEntry {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigType type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigCommentPtr comment;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigVirtualPtr virtual;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync struct _DMXConfigEntry *next;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DMXConfigEntry, *DMXConfigEntryPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigEntryPtr dmxConfigEntry;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int yylex(void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern int yydebug;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void yyerror(const char *message);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigLog(const char *format, ...);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void *dmxConfigAlloc(unsigned long bytes);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void *dmxConfigRealloc(void *orig,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long orig_bytes,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long bytes);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern const char *dmxConfigCopyString(const char *string,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int length);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFree(void *area);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigTokenPtr dmxConfigCreateToken(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeToken(DMXConfigTokenPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigStringPtr dmxConfigCreateString(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *string);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeString(DMXConfigStringPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigNumberPtr dmxConfigCreateNumber(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int number);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeNumber(DMXConfigNumberPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigPairPtr dmxConfigCreatePair(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int x, int y,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int xsign, int ysign);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreePair(DMXConfigPairPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigCommentPtr dmxConfigCreateComment(int token, int line,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *comment);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeComment(DMXConfigCommentPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigPartDimPtr dmxConfigCreatePartDim(DMXConfigPairPtr pDim,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr pOffset);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreePartDim(DMXConfigPartDimPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigFullDimPtr dmxConfigCreateFullDim(DMXConfigPartDimPtr pScrn,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPartDimPtr pRoot);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeFullDim(DMXConfigFullDimPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigDisplayPtr dmxConfigCreateDisplay(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr pName,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigFullDimPtr pDim,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr pOrigin,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr pEnd);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeDisplay(DMXConfigDisplayPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigWallPtr dmxConfigCreateWall(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr pWallDim,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr pDisplayDim,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr pNameList,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr pEnd);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeWall(DMXConfigWallPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigOptionPtr dmxConfigCreateOption(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr pOption,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr pEnd);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeOption(DMXConfigOptionPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigParamPtr dmxConfigCreateParam(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr pOpen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr pParam,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr pClose,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr pEnd);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeParam(DMXConfigParamPtr p);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern const char **dmxConfigLookupParam(DMXConfigParamPtr p,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync const char *key,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int *argc);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigCreateSub(DMXConfigType type,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigCommentPtr comment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigDisplayPtr display,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigWallPtr wall,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigOptionPtr option,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigParamPtr param);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeSub(DMXConfigSubPtr sub);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubComment(DMXConfigCommentPtr comment);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubDisplay(DMXConfigDisplayPtr display);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubWall(DMXConfigWallPtr wall);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubOption(DMXConfigOptionPtr option);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigSubParam(DMXConfigParamPtr param);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigSubPtr dmxConfigAddSub(DMXConfigSubPtr head,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigSubPtr sub);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigVirtualPtr dmxConfigCreateVirtual(DMXConfigTokenPtr pStart,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigStringPtr pName,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigPairPtr pDim,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr pOpen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigSubPtr pSubentry,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigTokenPtr pClose);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeVirtual(DMXConfigVirtualPtr virtual);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigEntryPtr dmxConfigCreateEntry(DMXConfigType type,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigCommentPtr comment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigVirtualPtr virtual);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern void dmxConfigFreeEntry(DMXConfigEntryPtr entry);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigEntryPtr dmxConfigAddEntry(DMXConfigEntryPtr head,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigType type,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigCommentPtr comment,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DMXConfigVirtualPtr virtual);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigEntryPtr dmxConfigEntryComment(DMXConfigCommentPtr comment);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern DMXConfigEntryPtr dmxConfigEntryVirtual(DMXConfigVirtualPtr virtual);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif