udi_bus_bind_ack(3udi)
Acknowledge a bus bridge binding
#include <udi.h>void udi_bus_bind_ack ( udi_bus_bind_cb_t *cb, udi_dma_constraints_t dma_constraints, udi_ubit8_t preferred_endianness, udi_status_t status ); /* Values for preferred_endianness */#define UDI_DMA_BIG_ENDIAN (1U<<5) #define UDI_DMA_LITTLE_ENDIAN (1U<<6) #define UDI_DMA_ANY_ENDIAN (1U<<0)ARGUMENTS cb is a pointer to a bus bind control block.
dma_constraints specifies the DMA constraints requirements of the bus bridge. The child driver must apply its own specific constraints attributes to this constraints object (using udi_dma_constraints_attr_set) before using it for its own DMA mappings.
preferred_endianness indicates the device endianness which works most effectively with the bridges in this path. It may be set to one of the following values:
UDI_DMA_LITTLE_ENDIAN
UDI_DMA_BIG_ENDIAN
UDI_DMA_ANY_ENDIANstatus indicates whether or not the binding was successful.
TARGET CHANNEL The target channel for this operation is the bind channel connecting a bus bridge driver with one of its child device drivers.
DESCRIPTION The udi_bus_bind_ack operation is used by a bridge driver to acknowledge binding with a child device driver (or failure to do so, as indicated by status), as requested by a udi_bus_bind_req operation. When a bind is acknowledged with this operation, the bridge driver must be prepared for DMA, PIO, or interrupt registration operations to be performed to the associated device and for the device to begin generating interrupts.
Some devices are bi-endian; that is, they can be placed in either a little-endian mode or a big-endian mode. preferred_endianness provides a hint to drivers for such devices, as to which endianness is likely to be most efficient. If this is set to UDI_DMA_ANY_ENDIAN, at least one interposed bridge is bi-endian, so either endianness can be supported without significant additional cost (i.e. without software byte swapping).
Drivers for fixed-endianness devices can ignore preferred_endianness.
STATUS VALUES UDI_STAT_CANNOT_BIND
warnings The control block must be the same control block as passed to the driver in the corresponding udi_bus_bind_req operation.
REFERENCES udi_bus_bind_cb_t, udi_bus_bind_req, udi_channel_close