/*
* smidump.h --
*
* This header contains the entry points into the modules
* which dump MIB modules in various output format.
*
* Copyright (c) 1999 Frank Strauss, Technical University of Braunschweig.
* Copyright (c) 1999 J. Schoenwaelder, Technical University of Braunschweig.
*
* See the file "COPYING" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* @(#) $Id: smidump.h 7870 2008-03-11 19:29:58Z schoenw $
*/
#ifndef _SMIDUMP_H
#define _SMIDUMP_H
#include "shhopt.h"
/*
* The following flags can be passed to output drivers in the flags
* member of the struct above.
*/
#define SMIDUMP_FLAG_SILENT 0x01 /* suppress comments */
#define SMIDUMP_FLAG_UNITE 0x02 /* generated united output */
#define SMIDUMP_FLAG_ERROR 0x04 /* parser hit serious parse errors */
/*
* Driver capability flags which are used to warn about options not
* understood by a particular output driver.
*/
#define SMIDUMP_DRIVER_CANT_UNITE 0x02
#define SMIDUMP_DRIVER_CANT_OUTPUT 0x04
/*
* The data structure which represents a driver specific option.
* A static array of these options (with the last option's type
* being OPT_END) is used in SmidumpDriver.
* The SmidumpDriverOption structure is based on shhopt.h:optStruct.
*/
typedef struct SmidumpDriverOption {
char *name;
optArgType type;
void *arg;
int flags;
char *descr;
} SmidumpDriverOption;
/*
* The data structure which represents the entry point for an output
* driver. The ignflags contain the driver capabilities as described
* above.
*/
typedef struct SmidumpDriver {
char *name; /* Name of the output driver. */
void (*func) (int, SmiModule **, /* Output generating function. */
int, char *);
int smiflags; /* Flags for the SMI parser. */
int ignflags; /* Output driver flags ignored. */
char *descr; /* Short description. */
SmidumpDriverOption *opt; /* Driver specific options. */
struct SmidumpDriver *next;
} SmidumpDriver;
/*
* The entry points for the output drivers that currently exist for
* smidump.
*/
extern void initSmi(void);
extern void initSming(void);
extern void initSppi(void);
extern void initSvg(void);
extern void initImports(void);
extern void initTypes(void);
extern void initTree(void);
extern void initIdentifiers(void);
extern void initMetrics(void);
extern void initMosy(void);
extern void initXml(void);
extern void initCorba(void);
extern void initCm(void);
extern void initNetsnmp(void);
extern void initJax(void);
extern void initPython(void);
extern void initPerl(void);
extern void initScli(void);
extern void initXsd(void);
extern void initSizes(void);
extern void initCompliances(void);
extern void initYang(void);
extern void initBoilerplate(void);
extern void initSql(void);
extern void initFig(void);
/*
* The functions are wrappers for the malloc functions which handle
* memory allocation errors by terminating the program.
*/
extern void *xmalloc(size_t size);
extern void *xrealloc(void *ptr, size_t size);
extern void *xcalloc(size_t nmemb, size_t size);
extern char *xstrdup(const char *s);
extern void xfree(void *ptr);
extern void smidumpRegisterDriver(SmidumpDriver *driver);
#endif /* _SMIDUMP_H */