Provided by: libsmi2-dev_0.4.8+dfsg2-8ubuntu2_amd64 bug

NAME

       smiGetNode,    smiGetNodeByOID,    smiGetFirstNode,    smiGetNextNode,   smiGetParentNode,
       smiGetRelatedNode,    smiGetFirstChildNode,     smiGetNextChildNode,     smiGetNodeModule,
       smiGetNodeType,  smiGetNodeLine, smiGetFirstElement, smiGetNextElement, smiGetElementNode,
       smiGetFirstOption,     smiGetNextOption,     smiGetOptionNode,      smiGetFirstRefinement,
       smiGetNextRefinement,  smiGetRefinementModule, smiGetRefinementNode, smiGetRefinementType,
       smiGetRefinementWriteType - SMI type information routines

SYNOPSIS

       #include <smi.h>

       SmiNode *smiGetNode(SmiModule *smiModulePtr, char *node);

       SmiNode *smiGetNodeByOID(unsigned int oidlen, SmiSubid oid[]);

       SmiNode *smiGetFirstNode(SmiModule *smiModulePtr, SmiNodekind kinds);

       SmiNode *smiGetNextNode(SmiNode *smiNodePtr, SmiNodekind kinds);

       SmiNode *smiGetParentNode(SmiNode *smiNodePtr);

       SmiNode *smiGetRelatedNode(SmiNode *smiNodePtr);

       SmiNode *smiGetFirstChildNode(SmiNode *smiNodePtr);

       SmiNode *smiGetNextChildNode(SmiNode *smiNodePtr);

       SmiModule *smiGetNodeModule(SmiNode *smiNodePtr);

       SmiType *smiGetNodeType(SmiNode *smiNodePtr);

       int smiGetNodeLine(SmiNode *smiNodePtr);

       SmiElement *smiGetFirstElement(SmiNode *smiNodePtr);

       SmiElement *smiGetNextElement(SmiElement *smiElementPtr);

       SmiNode *smiGetElementNode(SmiElement *smiElementPtr);

       SmiOption *smiGetFirstOption(SmiNode *smiComplianceNodePtr);

       SmiOption *smiGetNextOption(SmiOption *smiOptionPtr);

       SmiNode *smiGetOptionNode(SmiOption *smiOptionPtr);

       SmiRefinement *smiGetFirstRefinement(SmiNode *smiComplianceNodePtr);

       SmiRefinement *smiGetNextRefinement(SmiRefinement *smiRefinementPtr);

       SmiNode *smiGetRefinementNode(SmiRefinement *smiRefinementPtr);

       SmiType *smiGetRefinementType(SmiRefinement *smiRefinementPtr);

       SmiType *smiGetRefinementWriteType(SmiRefinement *smiRefinementPtr);

       typedef struct SmiNode {
           SmiIdentifier       name;
           int                 oidlen;
           SmiSubid            *oid;         /* array of length oidlen */
           SmiDecl             decl;
           SmiAccess           access;
           SmiStatus           status;
           char                *format;
           SmiValue            value;
           char                *units;
           char                *description;
           char                *reference;
           SmiIndexkind        indexkind;
           int                 implied;
           int                 create;
           SmiNodekind         nodekind;
       } SmiNode;

       typedef struct SmiElement {
           /* no visible attributes */
       } SmiElement;

       typedef struct SmiOption {
           char                *description;
       } SmiOption;

       typedef struct SmiRefinement {
           SmiAccess           access;
           char                *description;
       } SmiRefinement;

DESCRIPTION

       These functions retrieve information on any SMI node definition in the  object  identifier
       tree,  these  are ASN.1 object identifier assignments, MODULE-IDENTITYs, OBJECT-IDENTITYs,
       OBJECT-TYPEs, NOTIFICATION-TYPEs, TRAP-TYPEs, OBJECT-GROUPs, NOTIFICATION-GROUPs,  MODULE-
       COMPLIANCEs,  and  AGENT-CAPABILITYs  in  SMIv1/v2  and  node, scalar, table, row, column,
       notification, group, and compliance statements in SMIng.

       The smiGetNode() function retrieves a struct SmiNode that represents a node of  any  kind.
       Node  may  be either a fully qualified descriptor, a simple node name, or a numerical OID.
       Nodes are also found, if node contains an instance identifier suffix.  If smiModulePtr  is
       not  NULL  it  used  to  limit  the  search to the given module. If the node is not found,
       smiGetNode() returns NULL.

       The smiGetNodeByOID() function retrieves a struct SmiNode that matches the longest  prefix
       of  the  node that is specified by the object identifier oid[] with the length oidlen.  If
       no such node is not found, smiGetNodeByOID() returns NULL.

       The smiGetFirstNode() and smiGetNextNode() functions  are  used  to  iteratively  retrieve
       struct  SmiNodes  in  tree pre-order.  smiGetFirstNode() returns the first node defined in
       the module specified by smiModulePtr that is of any kind specified in  the  kinds  bitset.
       Subsequent  calls  to  smiGetNextNode()  return the next node of any kind specified in the
       kinds bitset. If there are no more node definitions in the module, NULL is returned.

       The smiGetFirstChildNode() and smiGetNextChildNode() functions  are  used  to  iteratively
       retrieve struct SmiNodes that represent the immediate child nodes of the node specified by
       smiNodePtr passed to the smiGetFirstChildNode() call.

       The smiGetParentNode() function is used to retrieve a struct SmiNodes that represents  the
       parent node of the node specified by smiNodePtr.

       The  smiGetRelatedNode() function is used to retrieve a struct SmiNodes that is related to
       the node specified by smiNodePtr. Actually, this is  used  for  SMIv2  table  augmentation
       entries and similar SMIng constructs.

       The  smiGetNodeModule()  function returns the module that defines the node given by struct
       SmiNodePtr.

       The smiGetNodeType() function returns the type of the (scalar or columnar) node  given  by
       struct  SmiNodePtr.  If struct SmiNodePtr does not specify a scalar or columnar node, NULL
       is returned.

       The  smiGetFirstElement()  and  smiGetNextElement()  functions  are  used  to  iteratively
       retrieve  struct  SmiElements  that  represent  elements  of index clauses or notification
       object lists, groups of object types or notification types, and mandatory groups of module
       compliance  statements.  The  node  to  which  the  list  belongs  has  to be specified by
       smiNodePtr. To retrieve  the  node  that  is  represented  by  a  struct  SmiElement,  the
       smiGetElementNode() function has to be called.

       The  smiGetFirstOption() and smiGetNextOption() functions are used to iteratively retrieve
       struct SmiOptions that represent statements on optional (object  or  notification)  groups
       within the compliance statement specified by smiComplianceNodePtr. The group node which is
       subject of such a statement can be retrieved by the smiGetOptionNode() function.

       Similarly, the smiGetFirstRefinement() and smiGetNextRefinement() functions  are  used  to
       iteratively  retrieve  struct  SmiRefinements that represent statements on optional object
       refinements within the compliance statement specified by  smiComplianceNodePtr.  The  node
       which  is  subject  of  such  a  refinement can be retrieved by the smiGetRefinementNode()
       function. The optional refined type and write-type of a refinement can be retrieved by the
       smiGetRefinementType() and smiGetRefinementWriteType() functions. If they are not present,
       NULL is returned.

       The smiGetNodeLine() function returns the line number within the  module  where  the  node
       specified by smiNodePtr is defined.

FILES

       ${prefix}/include/smi.h    SMI library header file

SEE ALSO

       libsmi(3), smi_config(3), smi_type(3), smi_module(3), smi.h

AUTHOR

       (C) 1999-2004 Frank Strauss, TU Braunschweig, Germany <strauss@ibr.cs.tu-bs.de>