Modules/UDI - Working on more framework and PCI bus
[tpg/acess2.git] / KernelLand / Modules / Interfaces / UDI / udi_lib / meta_mgmt.c
1 /**
2  * \file meta_mgmt.c
3  * \author John Hodge (thePowersGang)
4  */
5 #define DEBUG   1
6 #include <acess.h>
7 #include <udi.h>
8 #include "../udi_internal.h"
9
10 // === EXPORTS ===
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);
21
22 tUDI_MetaLang   cMetaLang_Management = {
23         "udi_mgmt",
24         1,
25         {NULL}
26 };
27
28 // === CODE ===
29 void udi_usage_ind(udi_usage_cb_t *cb, udi_ubit8_t resource_level)
30 {
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 );
33         if(!ops) {
34                 Log_Warning("UDI", "%s on wrong channel type", __func__);
35                 return ;
36         }
37         
38         ops->usage_ind_op(cb, resource_level);
39 }
40
41 void udi_static_usage(udi_usage_cb_t *cb, udi_ubit8_t resource_level)
42 {
43         UNIMPLEMENTED();
44 }
45
46 void udi_usage_res(udi_usage_cb_t *cb)
47 {
48         UNIMPLEMENTED();
49 }
50
51 void udi_enumerate_req(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level)
52 {
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 );
55         if(!ops) {
56                 Log_Warning("UDI", "%s on wrong channel type", __func__);
57                 return ;
58         }
59         
60         ops->enumerate_req_op(cb, enumeration_level);
61 }
62
63 void udi_enumerate_no_children(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level)
64 {
65         udi_enumerate_ack(cb, UDI_ENUMERATE_LEAF, 0);
66 }
67
68 void udi_enumerate_ack(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_result, udi_index_t ops_idx)
69 {
70         UNIMPLEMENTED();
71 }
72
73 void udi_devmgmt_req(udi_mgmt_cb_t *cb, udi_ubit8_t mgmt_op, udi_ubit8_t parent_ID )
74 {       
75         ENTER("pcb imgmt_op iparent_ID", cb, mgmt_op, parent_ID);
76         LEAVE('-');
77 }
78
79 void udi_devmgmt_ack(udi_mgmt_cb_t *cb, udi_ubit8_t flags, udi_status_t status)
80 {
81         ENTER("pcb xflags istatus", cb, flags, status);
82         LEAVE('-');
83 }
84
85 void udi_final_cleanup_req(udi_mgmt_cb_t *cb)
86 {
87         ENTER("pcb", cb);
88         LEAVE('-');
89 }
90
91 void udi_final_cleanup_ack(udi_mgmt_cb_t *cb)
92 {
93         ENTER("pcb", cb);
94         LEAVE('-');
95 }
96

UCC git Repository :: git.ucc.asn.au