Blame tools/smidump.h

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