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