3 * \author John Hodge (thePowersGang)
8 #include "../udi_internal.h"
11 EXPORT(udi_usage_ind);
12 EXPORT(udi_static_usage);
13 EXPORT(udi_usage_res);
14 EXPORT(udi_enumerate_req);
15 EXPORT(udi_enumerate_no_children);
16 EXPORT(udi_enumerate_ack);
17 EXPORT(udi_devmgmt_req);
18 EXPORT(udi_devmgmt_ack);
19 EXPORT(udi_final_cleanup_req);
20 EXPORT(udi_final_cleanup_ack);
22 tUDI_MetaLang cMetaLang_Management = {
29 void udi_usage_ind(udi_usage_cb_t *cb, udi_ubit8_t resource_level)
31 LOG("cb=%p{...}, resource_level=%i", cb, resource_level);
32 const udi_mgmt_ops_t *ops = UDI_int_ChannelPrepForCall( UDI_GCB(cb), &cMetaLang_Management, 0 );
34 Log_Warning("UDI", "%s on wrong channel type", __func__);
38 ops->usage_ind_op(cb, resource_level);
41 void udi_static_usage(udi_usage_cb_t *cb, udi_ubit8_t resource_level)
46 void udi_usage_res(udi_usage_cb_t *cb)
51 void udi_enumerate_req(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level)
53 LOG("cb=%p{...}, enumeration_level=%i", cb, enumeration_level);
54 const udi_mgmt_ops_t *ops = UDI_int_ChannelPrepForCall( UDI_GCB(cb), &cMetaLang_Management, 0 );
56 Log_Warning("UDI", "%s on wrong channel type", __func__);
60 ops->enumerate_req_op(cb, enumeration_level);
63 void udi_enumerate_no_children(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level)
65 udi_enumerate_ack(cb, UDI_ENUMERATE_LEAF, 0);
68 void udi_enumerate_ack(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_result, udi_index_t ops_idx)
73 void udi_devmgmt_req(udi_mgmt_cb_t *cb, udi_ubit8_t mgmt_op, udi_ubit8_t parent_ID )
75 ENTER("pcb imgmt_op iparent_ID", cb, mgmt_op, parent_ID);
79 void udi_devmgmt_ack(udi_mgmt_cb_t *cb, udi_ubit8_t flags, udi_status_t status)
81 ENTER("pcb xflags istatus", cb, flags, status);
85 void udi_final_cleanup_req(udi_mgmt_cb_t *cb)
91 void udi_final_cleanup_ack(udi_mgmt_cb_t *cb)