-#if !USE_MEI
-void udi_bus_unbind_req(udi_bus_bind_cb_t *cb)
-{
- UNIMPLEMENTED();
-}
-void udi_bus_unbind_ack(udi_bus_bind_cb_t *cb)
-{
- UNIMPLEMENTED();
-}
-
-void udi_bus_bind_req(udi_bus_bind_cb_t *cb)
-{
- LOG("cb=%p{...}", cb);
- PREP_OPS(udi_bus_bridge_ops_t, &cMetaLang_BusBridge, UDI_BUS_BRIDGE_OPS_NUM)
-
- UDI_int_MakeDeferredCb( UDI_GCB(cb), (udi_op_t*)ops->bus_bind_req_op );
-}
-
-struct marshalled_bus_bind_ack
-{
- tUDI_DeferredCall Call;
- udi_dma_constraints_t dma_constraints;
- udi_ubit8_t preferred_endianness;
- udi_status_t status;
-};
-
-static void _unmarshal_bus_bind_ack(tUDI_DeferredCall *Call)
-{
- LOG("Call=%p", Call);
- struct marshalled_bus_bind_ack *info = (void*)Call;
- UDI_int_ChannelReleaseFromCall( Call->cb );
- ((udi_bus_bind_ack_op_t*)Call->Handler)(
- UDI_MCB(Call->cb, udi_bus_bind_cb_t),
- info->dma_constraints,
- info->preferred_endianness,
- info->status);
- free(info);
-}
-
-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
- )
-{
- LOG("cb=%p{...}, dma_constraints=%p, preferred_endianness=%i,status=%i",
- cb, dma_constraints, preferred_endianness, status);
- PREP_OPS(udi_bus_device_ops_t, &cMetaLang_BusBridge, UDI_BUS_DEVICE_OPS_NUM)
-
- struct marshalled_bus_bind_ack *call = NEW(struct marshalled_bus_bind_ack,);
- call->Call.Unmarshal = _unmarshal_bus_bind_ack;
- call->Call.cb = UDI_GCB(cb);
- call->Call.Handler = (udi_op_t*)ops->bus_bind_ack_op;
- call->dma_constraints = dma_constraints;
- call->preferred_endianness = preferred_endianness;
- call->status = status;
- UDI_int_AddDeferred(&call->Call);
-}
-
-void udi_intr_attach_req(udi_intr_attach_cb_t *cb)
-{
- LOG("cb=%p", cb);
- PREP_OPS(udi_bus_bridge_ops_t, &cMetaLang_BusBridge, UDI_BUS_BRIDGE_OPS_NUM)
- UDI_int_MakeDeferredCb( UDI_GCB(cb), (udi_op_t*)ops->intr_attach_req_op );
-}
-void udi_intr_attach_ack(udi_intr_attach_cb_t *cb, udi_status_t status)
-{
- LOG("cb=%p,status=%i", cb, status);
- PREP_OPS(udi_bus_device_ops_t, &cMetaLang_BusBridge, UDI_BUS_DEVICE_OPS_NUM)
- UDI_int_MakeDeferredCbS( UDI_GCB(cb), (udi_op_t*)ops->intr_attach_ack_op, status );
-}
-
-void udi_intr_detach_req(udi_intr_detach_cb_t *cb)
-{
- LOG("cb=%p", cb);
- PREP_OPS(udi_bus_bridge_ops_t, &cMetaLang_BusBridge, UDI_BUS_BRIDGE_OPS_NUM)
- UDI_int_MakeDeferredCb( UDI_GCB(cb), (udi_op_t*)ops->intr_detach_req_op );
-}
-void udi_intr_detach_ack(udi_intr_detach_cb_t *cb)
-{
- LOG("cb=%p", cb);
- PREP_OPS(udi_bus_device_ops_t, &cMetaLang_BusBridge, UDI_BUS_DEVICE_OPS_NUM)
- UDI_int_MakeDeferredCb( UDI_GCB(cb), (udi_op_t*)ops->intr_detach_ack_op );
-}
-#endif
-
-void udi_intr_event_ind(udi_intr_event_cb_t *cb, udi_ubit8_t flags)
-{
- LOG("cb=%p,flags=0x%x", cb, flags);
- PREP_OPS(udi_intr_handler_ops_t, &cMetaLang_BusBridge, UDI_BUS_INTR_HANDLER_OPS_NUM)
- UDI_int_MakeDeferredCbU8( UDI_GCB(cb), (udi_op_t*)ops->intr_event_ind_op, flags );
-}
-
-void udi_intr_event_rdy(udi_intr_event_cb_t *cb)
-{
- LOG("cb=%p", cb);
- PREP_OPS(udi_intr_dispatcher_ops_t, &cMetaLang_BusBridge, UDI_BUS_INTR_DISPATCH_OPS_NUM)
- UDI_int_MakeDeferredCb( UDI_GCB(cb), (udi_op_t*)ops->intr_event_rdy_op );
-}
-
-void udi_intr_attach_ack_unused(udi_intr_attach_cb_t *intr_attach_cb, udi_status_t status)
-{
- Log_Error("UDI", "Driver %s caused %s to be called",
- UDI_int_ChannelGetInstance(UDI_GCB(intr_attach_cb), false, NULL)->Module->ModuleName,
- __func__);
-}
-void udi_intr_detach_ack_unused(udi_intr_detach_cb_t *intr_detach_cb)
-{
- Log_Error("UDI", "Driver %s caused %s to be called",
- UDI_int_ChannelGetInstance(UDI_GCB(intr_detach_cb), false, NULL)->Module->ModuleName,
- __func__);
-}
-
-#if USE_MEI