X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=KernelLand%2FModules%2FInterfaces%2FUDI%2Fudi_lib%2Fmeta_mgmt.c;fp=KernelLand%2FModules%2FInterfaces%2FUDI%2Fudi_lib%2Fmeta_mgmt.c;h=0000000000000000000000000000000000000000;hb=fb13a50bc14688a20dc37acbbbbe23f56bf63c41;hp=6e6ec42c58311a0a3bef79e686e366154c1ef30e;hpb=e7b8e2df61ce667f42043d746c148b06b5a4820a;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Interfaces/UDI/udi_lib/meta_mgmt.c b/KernelLand/Modules/Interfaces/UDI/udi_lib/meta_mgmt.c deleted file mode 100644 index 6e6ec42c..00000000 --- a/KernelLand/Modules/Interfaces/UDI/udi_lib/meta_mgmt.c +++ /dev/null @@ -1,137 +0,0 @@ -/** - * \file meta_mgmt.c - * \author John Hodge (thePowersGang) - */ -#define DEBUG 0 -#include -#include -#include "../udi_internal.h" -#include "../udi_ma.h" - -// === EXPORTS === -EXPORT(udi_usage_ind); -EXPORT(udi_static_usage); -EXPORT(udi_usage_res); -EXPORT(udi_enumerate_req); -EXPORT(udi_enumerate_no_children); -EXPORT(udi_enumerate_ack); -EXPORT(udi_devmgmt_req); -EXPORT(udi_devmgmt_ack); -EXPORT(udi_final_cleanup_req); -EXPORT(udi_final_cleanup_ack); - -tUDI_MetaLang cMetaLang_Management = { - "udi_mgmt", - - 1, - { - {sizeof(udi_enumerate_cb_t), NULL} - } -}; - -// === CODE === -void udi_usage_ind(udi_usage_cb_t *cb, udi_ubit8_t resource_level) -{ - LOG("cb=%p{...}, resource_level=%i", cb, resource_level); - const udi_mgmt_ops_t *ops = UDI_int_ChannelPrepForCall( UDI_GCB(cb), &cMetaLang_Management, 0 ); - if(!ops) { - Log_Warning("UDI", "%s on wrong channel type", __func__); - return ; - } - - // Non-deferred because it's usually called with a stack allocated cb - UDI_int_ChannelReleaseFromCall( UDI_GCB(cb) ); - ops->usage_ind_op(cb, resource_level); -} - -void udi_static_usage(udi_usage_cb_t *cb, udi_ubit8_t resource_level) -{ - cb->trace_mask = 0; - udi_usage_res(cb); -} - -void udi_usage_res(udi_usage_cb_t *cb) -{ - // TODO: Update trace mask from cb - LOG("cb=%p{cb->trace_mask=%x}", cb, cb->trace_mask); -} - -void udi_enumerate_req(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level) -{ - LOG("cb=%p{...}, enumeration_level=%i", cb, enumeration_level); - const udi_mgmt_ops_t *ops = UDI_int_ChannelPrepForCall( UDI_GCB(cb), &cMetaLang_Management, 0 ); - if(!ops) { - Log_Warning("UDI", "%s on wrong channel type", __func__); - return ; - } - - UDI_int_MakeDeferredCbU8( UDI_GCB(cb), (udi_op_t*)ops->enumerate_req_op, enumeration_level ); -} - -void udi_enumerate_no_children(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level) -{ - udi_enumerate_ack(cb, UDI_ENUMERATE_LEAF, 0); -} - -void udi_enumerate_ack(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_result, udi_index_t ops_idx) -{ - UDI_int_ChannelFlip( UDI_GCB(cb) ); - LOG("cb=%p, enumeration_result=%i, ops_idx=%i", cb, enumeration_result, ops_idx); - switch( enumeration_result ) - { - case UDI_ENUMERATE_OK: - #if DEBUG && 0 - for( int i = 0; i < cb->attr_valid_length; i ++ ) - { - udi_instance_attr_list_t *at = &cb->attr_list[i]; - switch(at->attr_type) - { - case UDI_ATTR_STRING: - LOG("[%i] String '%.*s'", i, at->attr_length, at->attr_value); - break; - case UDI_ATTR_UBIT32: - LOG("[%i] UBit32 0x%08x", i, UDI_ATTR32_GET(at->attr_value)); - break; - default: - LOG("[%i] %i", i, at->attr_type); - break; - } - } - #endif - // Returned a device - UDI_MA_AddChild(cb, ops_idx); - udi_enumerate_req(cb, UDI_ENUMERATE_NEXT); - return ; - case UDI_ENUMERATE_DONE: - // All done. Chain terminates - return ; - default: - Log_Notice("UDI", "Unknown enumeration_result %i", enumeration_result); - return ; - } -} - -void udi_devmgmt_req(udi_mgmt_cb_t *cb, udi_ubit8_t mgmt_op, udi_ubit8_t parent_ID ) -{ - ENTER("pcb imgmt_op iparent_ID", cb, mgmt_op, parent_ID); - LEAVE('-'); -} - -void udi_devmgmt_ack(udi_mgmt_cb_t *cb, udi_ubit8_t flags, udi_status_t status) -{ - ENTER("pcb xflags istatus", cb, flags, status); - LEAVE('-'); -} - -void udi_final_cleanup_req(udi_mgmt_cb_t *cb) -{ - ENTER("pcb", cb); - LEAVE('-'); -} - -void udi_final_cleanup_ack(udi_mgmt_cb_t *cb) -{ - ENTER("pcb", cb); - LEAVE('-'); -} -