udi_init_info(3udi)


Module initialization structure

SYNOPSIS

#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


UDI Core Specification Contents