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>