PICLD_PLUGIN_REGISTER(3PICLTREE) | PICL Plug-In Library Functions | PICLD_PLUGIN_REGISTER(3PICLTREE) |
cc [ flag... ] file... -lpicltree [ library... ] #include <picltree.h> int picld_plugin_register(picld_plugin_reg_t *regp);
The picld_plugin_register() function is the function used by a plug-in module to register itself with the PICL daemon upon initialization. The plug-in provides its name and the entry points of the initialization and cleanup routines in the regp argument.
typedef struct { int version; /* PICLD_PLUGIN_VERSION */ int critical; /* is plug-in critical? */ char *name; /* name of the plugin module */ void (*plugin_init)(void); /* init/reinit function */ void (*plugin_fini)(void); /* fini/cleanup function */ } picld_plugin_reg_t;
The plug-in module also specifies whether it is a critical module for the proper system operation. The critical field in the registration information is set to PICLD_PLUGIN_NON_CRITICAL by plug-in modules that are not critical to system operation, and is set to PICLD_PLUGIN_CRITICAL by plug-in modules that are critical to the system operation. An environment control plug-in module is an example for a PICLD_PLUGIN_CRITICAL type of plug-in module.
The PICL daemon saves the information passed during registration in regp in the order in which the plug-ins registered.
Upon initialization, the PICL daemon invokes the plugin_init() routine of each of the registered plug-in modules in the order in which they registered. In their plugin_init() routines, the plug-in modules collect the platform configuration data and add it to the PICL tree using PICLTREE interfaces (3PICLTREE).
On reinitialization, the PICL daemon invokes the plugin_fini() routines of the registered plug-in modules in the reverse order of registration. Then, the plugin_init() entry points are invoked again in the order in which the plug-ins registered.
Upon successful completion, 0 is returned. On failure, a negative value is returned.
PICL_FAILURE
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Evolving |
MT-Level | MT-Safe |
September 19, 2001 | OmniOS |