Blame lib/data.h

Packit Service 9ccfef
/*
Packit Service 9ccfef
 * data.h --
Packit Service 9ccfef
 *
Packit Service 9ccfef
 *      Definitions for the main data structures.
Packit Service 9ccfef
 *
Packit Service 9ccfef
 * Copyright (c) 1999 Frank Strauss, Technical University of Braunschweig.
Packit Service 9ccfef
 *
Packit Service 9ccfef
 * See the file "COPYING" for information on usage and redistribution
Packit Service 9ccfef
 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
Packit Service 9ccfef
 *
Packit Service 9ccfef
 * @(#) $Id: data.h 7966 2008-03-27 21:25:52Z schoenw $
Packit Service 9ccfef
 */
Packit Service 9ccfef
Packit Service 9ccfef
#ifndef _DATA_H
Packit Service 9ccfef
#define _DATA_H
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
#include <stdio.h>
Packit Service 9ccfef
Packit Service 9ccfef
#include "smi.h"
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct List {
Packit Service 9ccfef
    SmiElement      export;
Packit Service 9ccfef
    void	    *ptr;
Packit Service 9ccfef
    struct List	    *nextPtr;
Packit Service 9ccfef
} List;
Packit Service 9ccfef
Packit Service 9ccfef
typedef enum Kind {
Packit Service 9ccfef
    KIND_UNKNOWN	 = 0 ,  /*					     */
Packit Service 9ccfef
    KIND_MODULE		 = 1 ,  /*					     */
Packit Service 9ccfef
    KIND_MACRO		 = 2 ,  /*					     */
Packit Service 9ccfef
    KIND_TYPE		 = 3 ,  /*					     */
Packit Service 9ccfef
    KIND_OBJECT		 = 4 ,  /*					     */
Packit Service 9ccfef
    KIND_IMPORT		 = 5 ,  /* descriptors to be imported.               */
Packit Service 9ccfef
    KIND_IMPORTED	 = 6 ,  /* imported descriptor. syntax `mod.descr'.  */
Packit Service 9ccfef
    KIND_NOTFOUND	 = 7    /* to be imported, but not found             */
Packit Service 9ccfef
} Kind;
Packit Service 9ccfef
#define NUM_KINDS  7
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef unsigned short ParserFlags;
Packit Service 9ccfef
typedef unsigned short ModuleFlags;
Packit Service 9ccfef
typedef unsigned short ImportFlags;
Packit Service 9ccfef
typedef unsigned short ObjectFlags;
Packit Service 9ccfef
typedef unsigned short NodeFlags;
Packit Service 9ccfef
typedef unsigned short TypeFlags;
Packit Service 9ccfef
typedef unsigned short MacroFlags;
Packit Service 9ccfef
Packit Service 9ccfef
#define NODE_FLAG_ROOT		0x0001 /* mark node tree's root */
Packit Service 9ccfef
Packit Service 9ccfef
#define FLAG_SEQTYPE		0x0002 /* type is set from SMIv1/2 SEQUENCE. */
Packit Service 9ccfef
#define FLAG_REGISTERED		0x0004 /* On an Object: this is registered.  */
Packit Service 9ccfef
#define FLAG_INCOMPLETE		0x0008 /* Just defined by a forward          */
Packit Service 9ccfef
				       /* referenced type or object.         */
Packit Service 9ccfef
#define	FLAG_CREATABLE	        0x0040 /* On a Row: New rows can be created. */
Packit Service 9ccfef
#define FLAG_INGROUP		0x0080 /* Node is contained in a group.      */
Packit Service 9ccfef
#define	FLAG_INCOMPLIANCE	0x0100 /* Group is mentioned in a compliance
Packit Service 9ccfef
                                           statement.
Packit Service 9ccfef
					   In case of ImportFlags: the import
Packit Service 9ccfef
				           is done through a compliance
Packit Service 9ccfef
				           MODULE phrase.                    */
Packit Service 9ccfef
#define	FLAG_INSYNTAX		0x0200 /* Type is mentioned in a syntax
Packit Service 9ccfef
                                           statement.                        */
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct View {
Packit Service 9ccfef
    char	    *name;
Packit Service 9ccfef
    struct View	    *nextPtr;
Packit Service 9ccfef
    struct View	    *prevPtr;
Packit Service 9ccfef
} View;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Module {
Packit Service 9ccfef
    SmiModule	    export;
Packit Service 9ccfef
    time_t	    lastUpdated; /* only for SMIv2 modules */
Packit Service 9ccfef
    struct Object   *objectPtr;
Packit Service 9ccfef
    struct Object   *firstObjectPtr;
Packit Service 9ccfef
    struct Object   *lastObjectPtr;
Packit Service 9ccfef
    struct Type	    *firstTypePtr;
Packit Service 9ccfef
    struct Type	    *lastTypePtr;
Packit Service 9ccfef
    struct Class    *firstClassPtr;
Packit Service 9ccfef
    struct Class    *lastClassPtr;
Packit Service 9ccfef
    struct Macro    *firstMacroPtr;
Packit Service 9ccfef
    struct Macro    *lastMacroPtr;
Packit Service 9ccfef
    struct Identity *firstIdentityPtr;
Packit Service 9ccfef
    struct Identity *lastIdentityPtr;
Packit Service 9ccfef
    struct Import   *firstImportPtr;
Packit Service 9ccfef
    struct Import   *lastImportPtr;
Packit Service 9ccfef
    struct Revision *firstRevisionPtr;
Packit Service 9ccfef
    struct Revision *lastRevisionPtr;
Packit Service 9ccfef
    ModuleFlags	    flags;
Packit Service 9ccfef
    int		    numImportedIdentifiers;
Packit Service 9ccfef
    int		    numStatements;
Packit Service 9ccfef
    int		    numModuleIdentities;
Packit Service 9ccfef
    struct Module   *nextPtr;
Packit Service 9ccfef
    struct Module   *prevPtr;
Packit Service 9ccfef
    struct Node     *prefixNodePtr;
Packit Service 9ccfef
} Module;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Revision {
Packit Service 9ccfef
    SmiRevision	    export;
Packit Service 9ccfef
    Module          *modulePtr;
Packit Service 9ccfef
    struct Revision *nextPtr;
Packit Service 9ccfef
    struct Revision *prevPtr;
Packit Service 9ccfef
    int		    line;
Packit Service 9ccfef
} Revision;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Import {
Packit Service 9ccfef
    SmiImport      export;
Packit Service 9ccfef
    Module         *modulePtr;
Packit Service 9ccfef
    ImportFlags	   flags;
Packit Service 9ccfef
    struct Import  *nextPtr;
Packit Service 9ccfef
    struct Import  *prevPtr;
Packit Service 9ccfef
    Kind	   kind;
Packit Service 9ccfef
    int		   use;
Packit Service 9ccfef
    int		   line;
Packit Service 9ccfef
} Import;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct NamedNumber {
Packit Service 9ccfef
    SmiNamedNumber export;
Packit Service 9ccfef
    struct Type    *typePtr;
Packit Service 9ccfef
} NamedNumber;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Range {
Packit Service 9ccfef
    SmiRange       export;
Packit Service 9ccfef
    struct Type    *typePtr;
Packit Service 9ccfef
} Range;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Type {
Packit Service 9ccfef
    SmiType        export;
Packit Service 9ccfef
    Module         *modulePtr;
Packit Service 9ccfef
    struct Type    *parentPtr;
Packit Service 9ccfef
    struct List    *listPtr;
Packit Service 9ccfef
    TypeFlags	   flags;
Packit Service 9ccfef
    struct Type    *nextPtr;
Packit Service 9ccfef
    struct Type    *prevPtr;
Packit Service 9ccfef
    int		   line;
Packit Service 9ccfef
} Type;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Option {
Packit Service 9ccfef
    SmiOption      export;
Packit Service 9ccfef
    struct Object  *compliancePtr;
Packit Service 9ccfef
    struct Object  *objectPtr;
Packit Service 9ccfef
    int		   line;
Packit Service 9ccfef
} Option;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Refinement {
Packit Service 9ccfef
    SmiRefinement  export;
Packit Service 9ccfef
    struct Object  *compliancePtr; /* the compl. Object this Ref belongs to  */
Packit Service 9ccfef
    struct Object  *objectPtr;     /* the Object refined by this Refinement  */
Packit Service 9ccfef
    Type	   *typePtr;       /* the refined Type (or NULL)             */
Packit Service 9ccfef
    Type	   *writetypePtr;  /* the refined WriteType (or NULL)        */
Packit Service 9ccfef
    int		   line;
Packit Service 9ccfef
} Refinement;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Compl {
Packit Service 9ccfef
    List  *mandatorylistPtr;
Packit Service 9ccfef
    List  *optionlistPtr;
Packit Service 9ccfef
    List  *refinementlistPtr;
Packit Service 9ccfef
} Compl;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Index {
Packit Service 9ccfef
    int	           implied;
Packit Service 9ccfef
    SmiIndexkind   indexkind;
Packit Service 9ccfef
    struct List    *listPtr; /* list of index columns (Object *) */
Packit Service 9ccfef
    struct Object  *rowPtr;  /* a referenced row (e.g. SMIv2 AUGMENTS) */
Packit Service 9ccfef
} Index;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct SubjectCategories {
Packit Service 9ccfef
    struct List *categories;
Packit Service 9ccfef
    int         allCategories;
Packit Service 9ccfef
} SubjectCategories;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Object {
Packit Service 9ccfef
    SmiNode        export;
Packit Service 9ccfef
    Module         *modulePtr;
Packit Service 9ccfef
    ObjectFlags	   flags;
Packit Service 9ccfef
    Type	   *typePtr;
Packit Service 9ccfef
    struct Object  *relatedPtr;         /* a related Object (augmented row) */
Packit Service 9ccfef
    struct List    *listPtr;	        /* OG, NT, NG, MC */
Packit Service 9ccfef
    struct List    *optionlistPtr;
Packit Service 9ccfef
    struct List    *refinementlistPtr;
Packit Service 9ccfef
    struct Node	   *nodePtr;
Packit Service 9ccfef
    struct Object  *prevPtr;		/* chain of Objects in this Module */
Packit Service 9ccfef
    struct Object  *nextPtr;
Packit Service 9ccfef
    struct Object  *prevSameNodePtr;    /* chain of Objects for this Node  */
Packit Service 9ccfef
    struct Object  *nextSameNodePtr;
Packit Service 9ccfef
    struct List    *uniquenessPtr;      /* UNIQUENESS */
Packit Service 9ccfef
    int		   line;
Packit Service 9ccfef
} Object;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Node {
Packit Service 9ccfef
    SmiSubid	   subid;
Packit Service 9ccfef
    NodeFlags	   flags;
Packit Service 9ccfef
    int            oidlen;
Packit Service 9ccfef
    SmiSubid       *oid;
Packit Service 9ccfef
    struct Node	   *parentPtr;
Packit Service 9ccfef
    struct Node	   *nextPtr;
Packit Service 9ccfef
    struct Node	   *prevPtr;
Packit Service 9ccfef
    struct Node	   *firstChildPtr;
Packit Service 9ccfef
    struct Node	   *lastChildPtr;
Packit Service 9ccfef
    Object	   *firstObjectPtr;
Packit Service 9ccfef
    Object	   *lastObjectPtr;
Packit Service 9ccfef
} Node;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Macro {
Packit Service 9ccfef
    SmiMacro	   export;
Packit Service 9ccfef
    Module	   *modulePtr;
Packit Service 9ccfef
    MacroFlags	   flags;
Packit Service 9ccfef
    struct Macro   *nextPtr;
Packit Service 9ccfef
    struct Macro   *prevPtr;
Packit Service 9ccfef
    int		   line;
Packit Service 9ccfef
} Macro;
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Identity {
Packit Service 9ccfef
    SmiIdentity	   	export;
Packit Service 9ccfef
    Module	   	*modulePtr;
Packit Service 9ccfef
    struct Identity	*parentPtr;
Packit Service 9ccfef
    struct Identity   	*nextPtr;
Packit Service 9ccfef
    struct Identity  	*prevPtr;
Packit Service 9ccfef
    int		  	line;
Packit Service 9ccfef
} Identity;
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Class {
Packit Service 9ccfef
    SmiClass	    	export;
Packit Service 9ccfef
    Module         	*modulePtr;
Packit Service 9ccfef
    struct Attribute	*firstAttributePtr;
Packit Service 9ccfef
    struct Attribute   	*lastAttributePtr;
Packit Service 9ccfef
    struct List		*uniqueList;
Packit Service 9ccfef
    struct Event	*firstEventPtr;
Packit Service 9ccfef
    struct Event   	*lastEventPtr;
Packit Service 9ccfef
    struct Class	*parentPtr;
Packit Service 9ccfef
    struct Class   	*nextPtr;
Packit Service 9ccfef
    struct Class  	*prevPtr;
Packit Service 9ccfef
    int		  	line;
Packit Service 9ccfef
} Class;
Packit Service 9ccfef
/*NOTE: if first element of uniqueList points
Packit Service 9ccfef
	to current class that is class->uniqueList-> = class;
Packit Service 9ccfef
	the class is scalar. If uniqueList = NULL; it is not
Packit Service 9ccfef
	meant to be instatiated directly. Otherwise it contains
Packit Service 9ccfef
	list of pointers to the class unique attributes.
Packit Service 9ccfef
*/
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Attribute {
Packit Service 9ccfef
    SmiAttribute 	export;
Packit Service 9ccfef
    Class          	*classPtr;
Packit Service 9ccfef
    struct Type    	*parentTypePtr;
Packit Service 9ccfef
    struct List    	*listPtr;
Packit Service 9ccfef
    struct Attribute    *nextPtr;
Packit Service 9ccfef
    struct Attribute	*prevPtr;
Packit Service 9ccfef
    int		   	line;
Packit Service 9ccfef
    struct Class	*parentClassPtr;
Packit Service 9ccfef
} Attribute;
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Event {
Packit Service 9ccfef
    SmiEvent	   	export;
Packit Service 9ccfef
    Class          	*classPtr;
Packit Service 9ccfef
    struct Event   	*nextPtr;
Packit Service 9ccfef
    struct Event  	*prevPtr;
Packit Service 9ccfef
    int		  	line;
Packit Service 9ccfef
} Event;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Parser {
Packit Service 9ccfef
    char	   *path;
Packit Service 9ccfef
    FILE	   *file;
Packit Service 9ccfef
    int		   line;
Packit Service 9ccfef
    int		   lcline;		/* for SMI comment warning */
Packit Service 9ccfef
    Module	   *modulePtr;
Packit Service 9ccfef
    ParserFlags	   flags;
Packit Service 9ccfef
    List	   *firstIndexlabelPtr; /* only for the SMIng parser */
Packit Service 9ccfef
    char	   *identityObjectName; /* only for the SMIng parser */
Packit Service 9ccfef
    Module         *complianceModulePtr;
Packit Service 9ccfef
    Module         *capabilitiesModulePtr;
Packit Service 9ccfef
    Node	   *parentNodePtr;
Packit Service 9ccfef
    int            currentDecl;
Packit Service 9ccfef
    int            firstStatementLine;
Packit Service 9ccfef
    int            firstNestedStatementLine;
Packit Service 9ccfef
    int	           firstRevisionLine;
Packit Service 9ccfef
    Node     	    *pendingNodePtr;
Packit Service 9ccfef
} Parser;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
typedef struct Handle {
Packit Service 9ccfef
    char            *name;
Packit Service 9ccfef
    struct Handle   *prevPtr;
Packit Service 9ccfef
    struct Handle   *nextPtr;
Packit Service 9ccfef
    View     	    *firstViewPtr;
Packit Service 9ccfef
    View     	    *lastViewPtr;
Packit Service 9ccfef
    Module   	    *firstModulePtr;
Packit Service 9ccfef
    Module   	    *lastModulePtr;
Packit Service 9ccfef
    Node     	    *rootNodePtr;
Packit Service 9ccfef
    Type     	    *typeOctetStringPtr;
Packit Service 9ccfef
    Type     	    *typeObjectIdentifierPtr;
Packit Service 9ccfef
    Type     	    *typeInteger32Ptr;
Packit Service 9ccfef
    Type     	    *typeUnsigned32Ptr;
Packit Service 9ccfef
    Type     	    *typeInteger64Ptr;
Packit Service 9ccfef
    Type     	    *typeUnsigned64Ptr;
Packit Service 9ccfef
    Type     	    *typeFloat32Ptr;
Packit Service 9ccfef
    Type     	    *typeFloat64Ptr;
Packit Service 9ccfef
    Type     	    *typeFloat128Ptr;
Packit Service 9ccfef
    Type     	    *typeEnumPtr;
Packit Service 9ccfef
    Type     	    *typeBitsPtr;
Packit Service 9ccfef
    Type			*typePointerPtr;
Packit Service 9ccfef
    int	     	    flags;
Packit Service 9ccfef
    char     	    *path;
Packit Service 9ccfef
    char     	    *cache;
Packit Service 9ccfef
    char     	    *cacheProg;
Packit Service 9ccfef
    int      	    errorLevel;
Packit Service 9ccfef
    SmiErrorHandler *errorHandler;
Packit Service 9ccfef
    Parser          *parserPtr;
Packit Service 9ccfef
} Handle;
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern int	 smiDepth;	/* SMI parser recursion depth */
Packit Service 9ccfef
Packit Service 9ccfef
extern Handle    *smiHandle;    /* The current handle */
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern Handle *addHandle(const char *name);
Packit Service 9ccfef
Packit Service 9ccfef
extern void removeHandle(Handle *handlePtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Handle *findHandleByName(const char *name);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern View *addView(const char *modulename);
Packit Service 9ccfef
Packit Service 9ccfef
extern int isInView(const char *modulename);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern Module *addModule(char *modulename,
Packit Service 9ccfef
			 char *path,
Packit Service 9ccfef
			 ModuleFlags flags,
Packit Service 9ccfef
			 Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setModuleIdentityObject(Module *modulePtr,
Packit Service 9ccfef
				    Object *objectPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setModuleLastUpdated(Module *modulePtr,
Packit Service 9ccfef
				 time_t lastUpdated);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setModuleOrganization(Module *modulePtr,
Packit Service 9ccfef
				  char *organization);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setModuleContactInfo(Module *modulePtr,
Packit Service 9ccfef
				 char *contactinfo);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setModuleDescription(Module *modulePtr,
Packit Service 9ccfef
				 char *description,
Packit Service 9ccfef
				 Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setModuleReference(Module *modulePtr,
Packit Service 9ccfef
			       char *reference,
Packit Service 9ccfef
			       Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Module *findModuleByName(const char *modulename);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern Revision *addRevision(time_t date,
Packit Service 9ccfef
			     char *description,
Packit Service 9ccfef
			     Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setRevisionLine(Revision *revisionPtr,
Packit Service 9ccfef
			    int line,
Packit Service 9ccfef
			    Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern Import *addImport(char *name,
Packit Service 9ccfef
			 Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void addImportFlags(Import *importPtr, ImportFlags flags);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setImportModulename(Import *importPtr,
Packit Service 9ccfef
				char *modulename);
Packit Service 9ccfef
Packit Service 9ccfef
extern int checkImports(Module *modulePtr,
Packit Service 9ccfef
			Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Import *findImportByName(const char *name,
Packit Service 9ccfef
				Module *modulePtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Import *findImportByModulenameAndName(const char *modulename,
Packit Service 9ccfef
					     const char *name,
Packit Service 9ccfef
					     Module *modulePtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Object *addObject(char *objectname,
Packit Service 9ccfef
			 Node *parentNodePtr,
Packit Service 9ccfef
			 SmiSubid subid,
Packit Service 9ccfef
			 ObjectFlags flags,
Packit Service 9ccfef
			 Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Object *duplicateObject(Object *templatePtr,
Packit Service 9ccfef
			       ObjectFlags flags,
Packit Service 9ccfef
			       Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Node *addNode(Node *parentNodePtr,
Packit Service 9ccfef
		     SmiSubid subid,
Packit Service 9ccfef
		     NodeFlags flags,
Packit Service 9ccfef
		     Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Node *createNodes(unsigned int oidlen, SmiSubid *oid);
Packit Service 9ccfef
Packit Service 9ccfef
extern Node *createNodesByOidString(const char *oid);
Packit Service 9ccfef
Packit Service 9ccfef
extern Node *getParentNode(Node *nodePtr);
Packit Service 9ccfef
Packit Service 9ccfef
/*
Packit Service 9ccfef
 * setObjectName() might relink MIB tree object structures. If the
Packit Service 9ccfef
 * current objectPtr is to be used after the call, it should look like
Packit Service 9ccfef
 *   objectPtr = setObjectName(objectPtr, name);
Packit Service 9ccfef
 */
Packit Service 9ccfef
extern Object *setObjectName(Object *objectPtr,
Packit Service 9ccfef
			     char *name, Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectType(Object *objectPtr,
Packit Service 9ccfef
			  Type *typePtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectAccess(Object *objectPtr,
Packit Service 9ccfef
			    SmiAccess access);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectStatus(Object *objectPtr,
Packit Service 9ccfef
			    SmiStatus status);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectDescription(Object *objectPtr,
Packit Service 9ccfef
				 char *description,
Packit Service 9ccfef
				 Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectReference(Object *objectPtr,
Packit Service 9ccfef
			       char *reference,
Packit Service 9ccfef
			       Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectDecl(Object *objectPtr,
Packit Service 9ccfef
			   SmiDecl decl);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectUniqueness(Object *objectPtr, List *listPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectInstallErrors(Object *objectPtr, List *listPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectLine(Object *objectPtr,
Packit Service 9ccfef
			  int line,
Packit Service 9ccfef
			  Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectNodekind(Object *objectPtr,
Packit Service 9ccfef
			      SmiNodekind nodekind);
Packit Service 9ccfef
Packit Service 9ccfef
extern void addObjectFlags(Object *objectPtr,
Packit Service 9ccfef
			   ObjectFlags flags);
Packit Service 9ccfef
Packit Service 9ccfef
extern void deleteObjectFlags(Object *objectPtr,
Packit Service 9ccfef
			      ObjectFlags flags);
Packit Service 9ccfef
Packit Service 9ccfef
extern int checkObjectFlags(Object *objectPtr, ObjectFlags flags);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectList(Object *objectPtr,
Packit Service 9ccfef
			  struct List *listPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectRelated(Object *objectPtr,
Packit Service 9ccfef
			     Object *relatedPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectImplied(Object *objectPtr,
Packit Service 9ccfef
			     int implied);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectCreate(Object *objectPtr,
Packit Service 9ccfef
			    int create);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectIndexkind(Object *objectPtr,
Packit Service 9ccfef
			       SmiIndexkind indexkind);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectIndex(Object *objectPtr,
Packit Service 9ccfef
			   Index *indexPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectFormat(Object *objectPtr,
Packit Service 9ccfef
			    char *format);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectUnits(Object *objectPtr,
Packit Service 9ccfef
			   char *units);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setObjectValue(Object *objectPtr,
Packit Service 9ccfef
			   SmiValue *valuePtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Node *findNodeByParentAndSubid(Node *parentNodePtr,
Packit Service 9ccfef
				      SmiSubid subid);
Packit Service 9ccfef
Packit Service 9ccfef
extern Node *findNodeByOid(unsigned int oidlen, SmiSubid *oid);
Packit Service 9ccfef
Packit Service 9ccfef
extern Node *findNodeByOidString(char *oid);
Packit Service 9ccfef
Packit Service 9ccfef
extern Object *findObjectByNode(Node *nodePtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Object *findObjectByModuleAndNode(Module *modulePtr,
Packit Service 9ccfef
					 Node *nodePtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Object *findObjectByModulenameAndNode(const char *modulename,
Packit Service 9ccfef
					     Node *nodePtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Object *findObjectByName(const char *objectname);
Packit Service 9ccfef
Packit Service 9ccfef
extern Object *findNextObjectByName(const char *objectname,
Packit Service 9ccfef
				    Object *prevObjectPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Object *findObjectByModuleAndName(Module *modulePtr,
Packit Service 9ccfef
					 const char *objectname);
Packit Service 9ccfef
Packit Service 9ccfef
extern Object *findObjectByModulenameAndName(const char *modulename,
Packit Service 9ccfef
					     const char *objectname);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern Type *addType(char *type_name,
Packit Service 9ccfef
		     SmiBasetype basetype,
Packit Service 9ccfef
		     TypeFlags flags,
Packit Service 9ccfef
		     Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Type *duplicateType(Type *templatePtr,
Packit Service 9ccfef
			   TypeFlags flags,
Packit Service 9ccfef
			   Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Type *setTypeName(Type *typePtr,
Packit Service 9ccfef
			 char *name);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeStatus(Type *typePtr,
Packit Service 9ccfef
			  SmiStatus status);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeBasetype(Type *typePtr,
Packit Service 9ccfef
			  SmiBasetype basetype);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeParent(Type *typePtr,
Packit Service 9ccfef
			  Type *parentPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeList(Type *typePtr,
Packit Service 9ccfef
			struct List *listPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeDescription(Type *typePtr,
Packit Service 9ccfef
			       char *description,
Packit Service 9ccfef
			       Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeReference(Type *typePtr,
Packit Service 9ccfef
			     char *reference,
Packit Service 9ccfef
			     Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeDecl(Type *typePtr,
Packit Service 9ccfef
			SmiDecl decl);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeLine(Type *typePtr,
Packit Service 9ccfef
			int line,
Packit Service 9ccfef
			Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void addTypeFlags(Type *typePtr,
Packit Service 9ccfef
			 TypeFlags flags);
Packit Service 9ccfef
Packit Service 9ccfef
extern void deleteTypeFlags(Type *typePtr,
Packit Service 9ccfef
			    TypeFlags flags);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeFormat(Type *typePtr,
Packit Service 9ccfef
			  char *format);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeUnits(Type *typePtr,
Packit Service 9ccfef
			 char *units);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setTypeValue(Type *typePtr,
Packit Service 9ccfef
			 SmiValue *valuePtr);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern Type *findTypeByName(const char *type_name);
Packit Service 9ccfef
Packit Service 9ccfef
extern Type *findNextTypeByName(const char *type_name,
Packit Service 9ccfef
				Type *prevTypePtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Type *findTypeByModuleAndName(Module *modulePtr,
Packit Service 9ccfef
				     const char *type_name);
Packit Service 9ccfef
Packit Service 9ccfef
extern Type *findTypeByModulenameAndName(const char *modulename,
Packit Service 9ccfef
					 const char *type_name);
Packit Service 9ccfef
Packit Service 9ccfef
extern NamedNumber *findTypeNamedNumber(Type *typePtr,
Packit Service 9ccfef
					SmiInteger32 number);
Packit Service 9ccfef
					
Packit Service 9ccfef
					
Packit Service 9ccfef
					
Packit Service 9ccfef
extern Identity *addIdentity(char *identityname,
Packit Service 9ccfef
		             Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setIdentityDecl(Identity *identityPtr,
Packit Service 9ccfef
			    SmiDecl decl);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setIdentityStatus(Identity *identityPtr,
Packit Service 9ccfef
			      SmiStatus status);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setIdentityDescription(Identity *identityPtr,
Packit Service 9ccfef
				   char *description,
Packit Service 9ccfef
				   Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setIdentityReference(Identity *identityPtr,
Packit Service 9ccfef
				 char *reference,
Packit Service 9ccfef
				 Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setIdentityParent(Identity *identityPtr,
Packit Service 9ccfef
			      Identity *parentPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Identity *findIdentityByName(const char *identityname);
Packit Service 9ccfef
Packit Service 9ccfef
extern Identity *findIdentityByModuleAndName(Module *modulePtr,
Packit Service 9ccfef
					     const char *identityname);
Packit Service 9ccfef
Packit Service 9ccfef
extern Identity *findIdentityByModulenameAndName(const char *modulename,
Packit Service 9ccfef
						 const char *identity_name);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern Class *addClass(char *classname,
Packit Service 9ccfef
		       Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setClassDecl(Class *classPtr,
Packit Service 9ccfef
			 SmiDecl decl);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setClassStatus(Class *classPtr,
Packit Service 9ccfef
			   SmiStatus status);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setClassDescription(Class *classPtr,
Packit Service 9ccfef
				char *description,
Packit Service 9ccfef
				Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setClassReference(Class *classPtr,
Packit Service 9ccfef
			      char *reference,
Packit Service 9ccfef
			      Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Class *findClassByModuleAndName(Module *modulePtr, char *name);
Packit Service 9ccfef
Packit Service 9ccfef
extern Class *findClassByModulenameAndName(const char *modulename,
Packit Service 9ccfef
					   const char *class_name);
Packit Service 9ccfef
			      
Packit Service 9ccfef
Packit Service 9ccfef
		             
Packit Service 9ccfef
extern Attribute *duplicateTypeToAttribute(Type *templatePtr, 
Packit Service 9ccfef
					   Class *classPtr, Parser *parserPtr);
Packit Service 9ccfef
								
Packit Service 9ccfef
extern Attribute *addAttribute(char *attribute_name,
Packit Service 9ccfef
			       Class *classPtr, Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setAttributeName(Attribute *attributePtr, char *name);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setAttributeDecl(Attribute *attributePtr,
Packit Service 9ccfef
			     SmiDecl decl);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setAttributeStatus(Attribute *attributePtr,
Packit Service 9ccfef
			       SmiStatus status);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setAttributeDescription(Attribute *attributePtr,
Packit Service 9ccfef
				    char *description);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setAttributeReference(Attribute *attributePtr,
Packit Service 9ccfef
				  char *reference);
Packit Service 9ccfef
			      
Packit Service 9ccfef
extern void setAttributeAccess(Attribute *attributePtr,SmiAccess access);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setAttributeParentType(Attribute *attributePtr,
Packit Service 9ccfef
				   Type *parentPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setAttributeParentClass(Attribute *attributePtr, 
Packit Service 9ccfef
				    Class *parentPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setAttributeList(Attribute *attributePtr, List *listPtr);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern Event *addEvent(char *eventname, Class *classPtr, 
Packit Service 9ccfef
		       Parser *parserPtr);
Packit Service 9ccfef
			    
Packit Service 9ccfef
Packit Service 9ccfef
extern Macro *addMacro(char *macroname,
Packit Service 9ccfef
		       MacroFlags flags,
Packit Service 9ccfef
		       Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setMacroStatus(Macro *macroPtr,
Packit Service 9ccfef
			   SmiStatus status);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setMacroDescription(Macro *macroPtr,
Packit Service 9ccfef
				char *description,
Packit Service 9ccfef
				Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setMacroReference(Macro *macroPtr,
Packit Service 9ccfef
			      char *reference,
Packit Service 9ccfef
			      Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setMacroDecl(Macro *macroPtr,
Packit Service 9ccfef
			 SmiDecl decl);
Packit Service 9ccfef
			 
Packit Service 9ccfef
extern void setMacroAbnf(Macro *macroPtr, 
Packit Service 9ccfef
			 char *abnf, 
Packit Service 9ccfef
			 Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern void setMacroLine(Macro *macroPtr,
Packit Service 9ccfef
			 int line,
Packit Service 9ccfef
			 Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
extern Macro *findMacroByName(const char *macroname);
Packit Service 9ccfef
Packit Service 9ccfef
extern Macro *findMacroByModuleAndName(Module *modulePtr,
Packit Service 9ccfef
				       const char *macroname);
Packit Service 9ccfef
Packit Service 9ccfef
extern Macro *findMacroByModulenameAndName(const char *modulename,
Packit Service 9ccfef
					   const char *macroname);
Packit Service 9ccfef
					   
Packit Service 9ccfef
Packit Service 9ccfef
extern NamedNumber *findNamedNumberByName(Type *typePtr,
Packit Service 9ccfef
					  const char *name);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
extern int smiInitData(void);
Packit Service 9ccfef
Packit Service 9ccfef
extern void smiFreeData(void);
Packit Service 9ccfef
Packit Service 9ccfef
extern Module *loadModule(const char *modulename, Parser *parserPtr);
Packit Service 9ccfef
Packit Service 9ccfef
Packit Service 9ccfef
#endif /* _DATA_H */