|
|
udi_bus_bridge_ops_t(3udi)
Bridge driver entry point ops vector
#include <udi.h>typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_bus_bind_req_op_t *bus_bind_req_op; udi_bus_unbind_req_op_t *bus_unbind_req_op; udi_intr_attach_req_op_t *intr_attach_req_op; udi_intr_detach_req_op_t *intr_detach_req_op; } udi_bus_bridge_ops_t; /* Bus Bridge Ops Vector Number */#define UDI_BUS_BRIDGE_OPS_NUM 2DESCRIPTION A driver using the Physical I/O services and which acts as an "interrupt dispatcher" (as opposed to an "interrupt handler") will specify the udi_bus_bridge_ops_t structure as part of its udi_init_info to register its entry points for managing bus bindings and interrupts attachments/detachments.
REFERENCES udi_init_info, udi_ops_init_t, udi_bus_device_ops_t
EXAMPLE The driver's initialization structure definitions might include the following:
#define MY_DEVICE_OPS 10 /* Ops for my device role */
#define MY_BRIDGE_OPS 11 /* Ops for my bridge role */
#define MY_BUS_META 1 /* Meta index for Bus Bridge Metalanguage */
static udi_bus_bridge_ops_t ddd_bus_bridge_ops = { ddd_bus_bridge_channel_event_ind, ddd_bus_bind_req, ddd_bus_unbind_req, ddd_intr_attach_req, ddd_intr_detach_req }; ... static udi_ops_init_t ddd_ops_init_list[] = { { MY_DEVICE_OPS, MY_BUS_META, UDI_BUS_DEVICE_OPS_NUM, 0, /* chan_context_size */ (udi_ops_vector_t *)&ddd_bus_device_ops }, { MY_BRIDGE_OPS, MY_BUS_META, UDI_BUS_BRIDGE_OPS_NUM, 0, /* chan_context_size */ (udi_ops_vector_t *)&ddd_bus_bridge_ops }, ... };