Modules/UDI - PIO and better instance startup
[tpg/acess2.git] / KernelLand / Modules / Interfaces / UDI / include / udi_internal_ma.h
1 /*
2  * Acess2 UDI Layer
3  * - By John Hodge (thePowersGang)
4  *
5  * udi_ma.h
6  * - Management Agent
7  */
8 #ifndef _UDI_MA_H_
9 #define _UDI_MA_H_
10
11 extern void     UDI_MA_BindParents(tUDI_DriverModule *Module);
12 extern tUDI_DriverInstance      *UDI_MA_CreateInstance(tUDI_DriverModule *DriverModule,
13         tUDI_DriverInstance *ParentInstance, tUDI_ChildBinding *ChildBinding);
14 extern tUDI_DriverRegion        *UDI_MA_InitRegion(tUDI_DriverInstance *Inst, udi_ubit16_t Index, udi_ubit16_t Type, size_t RDataSize);
15 extern void     UDI_MA_BeginEnumeration(tUDI_DriverInstance *Inst);
16
17 extern void     UDI_MA_AddChild(udi_enumerate_cb_t *cb, udi_index_t ops_idx);
18
19
20 extern const udi_cb_init_t cUDI_MgmtCbInitList[];
21
22 extern tUDI_DriverModule        *gpUDI_LoadedModules;
23
24 enum eUDI_MAState
25 {
26         UDI_MASTATE_USAGEIND,
27         UDI_MASTATE_SECBIND,
28         UDI_MASTATE_PARENTBIND,
29         UDI_MASTATE_ENUMCHILDREN,
30         UDI_MASTATE_ACTIVE
31 };
32
33 extern void     UDI_MA_TransitionState(tUDI_DriverInstance *Inst, enum eUDI_MAState Src, enum eUDI_MAState Dst);
34
35 enum {
36         UDI_MGMT_ENUMERATE_CB_NUM,
37         UDI_MGMT_USAGE_CB_NUM,
38         UDI_MGMT_CHANNEL_EVENT_CB_NUM,
39 };
40
41 #endif
42

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