---
name: "smi_module"
section: "3"
platform: "linux"
package: "libsmi2-dev"
version: "0.4.8+dfsg2-17+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/smi_module"
---

# smi\_module(3)

SMI module information routines

## NAME

smiGetModule, smiGetFirstModule, smiGetNextModule, smiGetModuleIdentityNode, smiGetFirstImport, smiGetNextImport, smiIsImported, smiGetFirstRevision, smiGetNextRevision - SMI module information routines

## SYNOPSIS

```
#include <time.h>
#include <smi.h>

SmiModule *smiGetModule(char *module);

SmiModule *smiGetFirstModule();

SmiModule *smiGetNextModule(SmiModule *smiModulePtr);

SmiNode *smiGetModuleIdentityNode(SmiModule *smiModulePtr);

SmiImport *smiGetFirstImport(SmiModule *smiModulePtr);

SmiImport *smiGetNextImport(SmiImport *smiImportPtr);

int smiIsImported(SmiModule *smiModulePtr, SmiModule *importedModulePtr, char *importedName);

SmiRevision *smiGetFirstRevision(SmiModule *smiModulePtr);

SmiRevision *smiGetNextRevision(SmiRevision *smiRevisionPtr);
typedef struct SmiModule {
    SmiIdentifier       name;
    char                *path;
    char                *organization;
    char                *contactinfo;
    char                *description;
    char                *reference;
    SmiLanguage         language;
    int                 conformance;
} SmiModule;
typedef struct SmiRevision {
    time_t              date;
    char                *description;
} SmiRevision;
typedef struct SmiImport {
    SmiIdentifier       module;
    SmiIdentifier       name;
} SmiImport;
```

## DESCRIPTION

These functions retrieve various meta information on MIB modules. Other functions to retrieve the definitions within a module are documented in [**smi\_type**(3)](/smi_type/3.md), [**smi\_node**(3)](/smi_node/3.md), and [**smi\_macro**(3)](/smi_macro/3.md).

The **smiGetModule()** function retrieves a **struct SmiModule** that represents the SMI module named **module**. Elements not available or not present for this module contain NULL. If the module is not found, **smiGetModule()** returns NULL.

The **smiGetFirstModule()** and **smiGetNextModule()** functions are used to iteratively retrieve **struct SmiModule**s of all known modules. **smiGetFirstModule()** returns the first known module. Subsequent calls to **smiGetNextModule()** return the following ones.  If there are no more modules NULL is returned.

The **smiGetModuleIdentityNode()** function retrieves a **struct SmiNode** that represents the node that is used to identify the containing MIB module specified by *smiModulePtr*. If there is no such identity node, i.e. if this is not an SMIv2 or SMIng module converted from SMIv2, **smiGetModuleIdentityNode()** returns NULL.

The **smiGetFirstImport()** and **smiGetNextImport()** functions are used to iteratively retrieve **struct SmiImport**s of a given module. **smiGetFirstImport()** returns the first identifier imported by the module specified by *smiModulePtr*. Subsequent calls to **smiGetNextImport()** return the following ones. If there are no more imported identifiers NULL is returned.

The **smiIsImported()** function returns a positive value if the identifier *importedName* defined in the module specified by *importedModulePtr* is imported in the module specified by *smiModulePtr*, or zero otherwise.

The **smiGetFirstRevision()** and **smiGetNextRevision()** functions are used to iteratively retrieve **struct SmiRevision**s of a given module. **smiGetFirstRevision()** returns the first (that is most recent) revision information of the module specified by *smiModulePtr*. Subsequent calls to **smiGetNextRevision()** return the revision after (timely before) that one. If there are no more revisions NULL is returned.

## FILES

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

## SEE ALSO

[**libsmi**(3)](/libsmi/3.md),  [**smi\_config**(3)](/smi_config/3.md),  [**smi\_node**(3)](/smi_node/3.md),  **smi.h**

## AUTHOR

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