udi_gcb_init_t(3udi)


Generic control block initialization properties

SYNOPSIS

#include <udi.h>

typedef const struct {

	udi_index_t cb_idx;

	udi_size_t scratch_requirement;

} udi_gcb_init_t;
 
/* Maximum Legal Scratch Requirement */
 
#define  UDI_MAX_SCRATCH				4000
 

MEMBERS cb_idx is a non-zero control block index number, assigned by the driver to uniquely identify this set of control block related properties for use in other initialization structures and service calls, or zero to terminate the gcb_init_list list to which this structure belongs (see udi_init_info). If cb_idx is zero, all other members of this structure are ignored.

scratch_requirement specifies in bytes the driver's requirements for scratch area size in generic control blocks allocated with this cb_idx. This value must not exceed UDI_MAX_SCRATCH (4000 bytes).

DESCRIPTION Control blocks that are to be used only for asynchronous environment service calls, such as udi_mem_alloc, and not for any channel operations, may be allocated using a control block index that is initialized with a udi_gcb_init_t. This structure is part of udi_init_info.

Such control blocks have no metalanguage-specific visible part and are directly referenced by the udi_cb_t generic control block pointer. As a result, these control blocks must not be used (or defined for use) in channel operations.

If non-zero, the cb_idx value must be unique with respect to all other udi_cb_init_t and udi_gcb_init_t structures for the same driver (even for separate modules in a multi-module driver).

REFERENCES udi_init_info, udi_cb_init_t, udi_cb_t, udi_cb_alloc


UDI Core Specification Contents