udi_cb_select_t(3udi)


Control block selections for incoming channel ops

SYNOPSIS

#include <udi.h>

typedef const struct {

	udi_index_t ops_idx;

	udi_index_t cb_idx;

} udi_cb_select_t;
 

MEMBERS cb_idx is a control block index number that must match a cb_idx value in a udi_cb_init_t associated with the udi_meta_init_t from which this structure is referenced, or must be zero to terminate a cb_select_list list to which this structure belongs (see udi_init_info).

DESCRIPTION The udi_cb_select_t structure contains information the environment needs to subsequently manage scratch requirements of control blocks that are passed across channels. This structure is part of udi_init_info.

udi_cb_select_t entries can be used to override the default algorithm for determining scratch requirements for control blocks that are received via channel operations when there are multiple udi_cb_init_t structures for the same meta_cb_num and meta_idx. By default, the scratch requirement is computed as the maximum from all matching udi_cb_init_t structures. However, if a udi_cb_select_t entry is present for the appropriate ops_idx that has a cb_idx matching one of the candidate udi_cb_init_t structures, then the scratch requirement from that structure is used instead.

udi_cb_select_t entries are optional and will not be needed by most drivers.

In all cases, control block allocation (with udi_cb_alloc) uses the specific properties associated with a control block index parameter, and is unaffected by udi_cb_select_t entries.

REFERENCES udi_init_info, udi_cb_init_t, udi_ops_init_t, udi_cb_alloc


UDI Core Specification Contents