|
|
udi_init_info(3udi)
Module initialization structure
#include <udi.h>typedef const struct { udi_primary_init_t *primary_init_info; udi_secondary_init_t *secondary_init_list; udi_ops_init_t *ops_init_list; udi_cb_init_t *cb_init_list; udi_gcb_init_t *gcb_init_list; udi_cb_select_t *cb_select_list; } udi_init_t; udi_init_t udi_init_info;MEMBERS primary_init_info is a pointer to a structure containing information about the driver's primary region, used in the driver's primary module. For secondary modules, this must be set to NULL.
secondary_init_list is a pointer to a list of structures containing information about each type of secondary region implemented in this module, if any. The list is terminated with an entry containing a zero region_idx. A NULL pointer is treated the same as an empty list.
ops_init_list is a pointer to a list of structures containing information about channel operations usage for each ops vector implemented in this module. The list is terminated with an entry containing a zero ops_idx. ops_init_list must contain at least one entry, and must include at least one entry for each metalanguage used in this module.
cb_init_list is a pointer to a list of structures containing information about each control block type used by this module. The list is terminated with an entry containing a zero cb_idx. A NULL pointer is treated the same as an empty list.
gcb_init_list is a pointer to a list of structures containing information about generic control block usage in this module, if any. The list is terminated with an entry containing a zero cb_idx. A NULL pointer is treated the same as an empty list.
cb_select_list is a pointer to a list of structures containing information about special overrides for scratch requirements when using specific control blocks with specific ops vectors. The list is terminated with an entry containing a zero cb_idx. A NULL pointer is treated the same as an empty list.
DESCRIPTION The udi_init_info structure contains pointers to constant information the environment needs to initialize a driver. Each driver module must include a constant initialized structure of type udi_init_t named udi_init_info.
Exactly one module in a multi-module driver must be the primary module, identified in the driver's Static Driver Properties as the module with a "region" declaration for region index zero, which is the primary region. The primary module of any driver must have a non-NULL primary_init_info. If the primary module also manages some secondary regions, the module must also include a non-empty secondary_init_list.
See udi_cb_init_t for details on how cb_select_list is used.
REFERENCES udi_primary_init_t, udi_secondary_init_t, udi_ops_init_t, udi_cb_init_t, udi_gcb_init_t, udi_cb_select_t