Modules/UDI - Enumeration working, ne2000 starting to bind to PCI
[tpg/acess2.git] / KernelLand / Modules / Interfaces / UDI / udi_lib / imc.c
1 /**
2  * \file imc.c
3  * \author John Hodge (thePowersGang)
4  */
5 #define DEBUG   1
6 #include <acess.h>
7 #include <udi.h>
8 //#include "internal/channels.h"
9 #include "../udi_internal.h"
10
11 // === EXPORTS ===
12 EXPORT(udi_channel_anchor);
13 EXPORT(udi_channel_spawn);
14 EXPORT(udi_channel_set_context);
15 EXPORT(udi_channel_op_abort);
16 EXPORT(udi_channel_close);
17 EXPORT(udi_channel_event_ind);
18 EXPORT(udi_channel_event_complete);
19
20 // === CODE ===
21 /**
22  */
23 void udi_channel_anchor(
24         udi_channel_anchor_call_t *callback, udi_cb_t *gcb,
25         udi_channel_t channel, udi_index_t ops_idx, void *channel_context
26         )
27 {
28         Warning("%s Unimplemented", __func__);
29 }
30
31 /**
32  */
33 extern void udi_channel_spawn(
34         udi_channel_spawn_call_t *callback, udi_cb_t *gcb,
35         udi_channel_t channel, udi_index_t spawn_idx,
36         udi_index_t ops_idx, void *channel_context
37         )
38 {
39         Warning("%s Unimplemented", __func__);
40 }
41
42 /**
43  * 
44  */
45 void udi_channel_set_context(
46         udi_channel_t target_channel, void *channel_context
47         )
48 {
49         Warning("%s Unimplemented", __func__);
50 }
51
52 void udi_channel_op_abort(
53         udi_channel_t target_channel, udi_cb_t *orig_cb
54         )
55 {
56         Warning("%s Unimplemented", __func__);
57 }
58
59 void udi_channel_close(udi_channel_t channel)
60 {
61         Warning("%s Unimplemented", __func__);
62 }
63
64 void udi_channel_event_ind(udi_channel_event_cb_t *cb)
65 {
66         LOG("cb=%p{...}", cb);
67         const struct {
68                 udi_channel_event_ind_op_t *channel_event_ind_op;
69         } *ops = UDI_int_ChannelPrepForCall( UDI_GCB(cb), NULL, 0 );
70         if(!ops) {
71                 Log_Warning("UDI", "udi_channel_event_ind on wrong channel type");
72                 return ;
73         }
74
75         // UDI_int_MakeDeferredCb( UDI_GCB(cb), ops->channel_event_ind_op );
76
77         UDI_int_ChannelReleaseFromCall( UDI_GCB(cb) );  
78         ops->channel_event_ind_op(cb);
79 }
80
81 void udi_channel_event_complete(udi_channel_event_cb_t *cb, udi_status_t status)
82 {
83         UNIMPLEMENTED();
84 }

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