---
name: "smi_macro"
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_macro"
---

# smi\_macro(3)

SMI macro and extension information routines

## NAME

smiGetMacro, smiGetFirstMacro, smiGetNextMacro, smiGetMacroModule - SMI macro and extension information routines

## SYNOPSIS

```
#include <smi.h>

SmiMacro *smiGetMacro(SmiModule *smiModulePtr, char *macro);

SmiMacro *smiGetFirstMacro(SmiModule *smiModulePtr);

SmiMacro *smiGetNextMacro(SmiMacro *smiMacroPtr);

SmiModule *smiGetMacroModule(SmiMacro *smiMacroPtr);
typedef struct SmiMacro {
    SmiIdentifier       name;
    SmiDecl             decl;
    SmiStatus           status;
    char                *description;
    char                *reference;
} SmiMacro;
```

## DESCRIPTION

These functions retrieve information on an extension statement definition (SMIng) or a macro (SMIv1/v2).

The **smiGetMacro()** function retrieves a **struct SmiMacro** that represents an extension or macro definition. *Macro* may be either a fully qualified descriptor or a simple macro or extension name. If *smiModulePtr* is not NULL it used to limit the search to the given module. If the macro is not found, **smiGetMacro()** returns NULL.

The **smiGetFirstMacro()** and **smiGetNextMacro()** functions are used to iteratively retrieve **struct SmiMacro**s. **smiGetFirstMacro()** returns the first one defined in the module specified by *smiModulePtr*. Subsequent calls to **smiGetNextMacro()** return the following ones. If there are no more extension or macro definitions in the module, NULL is returned.

The **smiGetMacroModule()** function returns the module that defines the macro or extension given by *struct SmiMacroPtr*.

## FILES

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

## SEE ALSO

[**libsmi**(3)](/libsmi/3.md),  [**smi\_module**(3)](/smi_module/3.md),  **smi.h**

## AUTHOR

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