+struct sUDI_ChildBinding
+{
+ tUDI_ChildBinding *Next;
+
+ udi_ubit32_t ChildID;
+ tUDI_MetaLang *Metalang;
+ tUDI_BindOps *BindOps;
+
+ udi_ops_init_t *Ops;
+ tUDI_DriverInstance *BoundInstance;
+
+ int nAttribs;
+ udi_instance_attr_list_t Attribs[];
+};
+
+// --- Metalanguages ---
+extern tUDI_MetaLang cMetaLang_Management;
+
+
+// --- Index to pointer translation ---
+extern udi_ops_init_t *UDI_int_GetOps(tUDI_DriverInstance *Inst, udi_index_t index);
+extern tUDI_MetaLang *UDI_int_GetMetaLang(tUDI_DriverInstance *Inst, udi_index_t meta_idx);
+
+// --- Channels ---
+extern udi_channel_t UDI_CreateChannel_Blank(tUDI_MetaLang *metalang);
+extern udi_channel_t UDI_CreateChannel_Linked(udi_channel_t orig, udi_ubit8_t spawn_idx);
+extern int UDI_BindChannel_Raw(udi_channel_t channel, bool other_side, tUDI_DriverInstance *inst, udi_index_t region_idx, udi_index_t meta_ops_num, void *context, const void *ops);
+extern int UDI_BindChannel(udi_channel_t channel, bool other_side, tUDI_DriverInstance *inst, udi_index_t ops, udi_index_t region, void *context, bool is_child_bind, udi_ubit32_t child_ID);
+extern tUDI_DriverInstance *UDI_int_ChannelGetInstance(udi_cb_t *gcb, bool other_side, udi_index_t *region_idx);
+extern void UDI_int_ChannelSetContext(udi_channel_t channel, void *context);
+extern const void *UDI_int_ChannelPrepForCall(udi_cb_t *gcb, tUDI_MetaLang *metalang, udi_index_t meta_ops_num);
+extern void UDI_int_ChannelFlip(udi_cb_t *gcb);
+extern void UDI_int_ChannelReleaseFromCall(udi_cb_t *gcb);
+
+// --- Async Calls ---
+typedef struct sUDI_DeferredCall tUDI_DeferredCall;
+typedef void tUDI_DeferredUnmarshal(tUDI_DeferredCall *Call);
+struct sUDI_DeferredCall