UDI/include - Fix typedefs in GIO metalang
[tpg/acess2.git] / KernelLand / Modules / Interfaces / UDI / include / udi_internal.h
index e07b8d4..62d37af 100644 (file)
@@ -9,6 +9,7 @@
 #define _UDI_INTERNAL_H_
 
 #include <stdbool.h>
+#include <stdarg.h>
 
 #define NEW(type,extra) (type*)calloc(sizeof(type)extra,1)
 #define NEW_wA(type,fld,cnt)   NEW(type,+(sizeof(((type*)NULL)->fld[0])*cnt))
@@ -70,9 +71,11 @@ struct sUDI_PropRegion
 struct sUDI_MetaLang
 {
        const char *Name;
+       const void      *MeiInfo;
         int    nCbTypes;
        struct {
                udi_size_t      Size;
+               udi_size_t      ChainOfs;
                udi_layout_t    *Layout;
        } CbTypes[];
 };
@@ -107,7 +110,7 @@ struct sUDI_DriverModule
        tUDI_DriverModule       *Next;
        void    *Base;
 
-       udi_init_t      *InitInfo;
+       const udi_init_t        *InitInfo;
 
        // Counts of arrays in InitInfo
         int    nCBInit;
@@ -174,7 +177,7 @@ 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);
+extern tUDI_MetaLang *UDI_int_GetMetaLang(tUDI_DriverModule *Inst, udi_index_t meta_idx);
 
 // --- Channels ---
 extern udi_channel_t   UDI_CreateChannel_Blank(tUDI_MetaLang *metalang);
@@ -208,9 +211,17 @@ extern void        UDI_int_MakeDeferredCbS(udi_cb_t *cb, udi_op_t *handler, udi_status_
 // --- CBs ---
 extern void *udi_cb_alloc_internal(tUDI_DriverInstance *Inst, udi_ubit8_t bind_cb_idx, udi_channel_t channel);
 extern udi_cb_t        *udi_cb_alloc_internal_v(tUDI_MetaLang *Meta, udi_index_t MetaCBNum, size_t inline_size, size_t scratch_size, udi_channel_t channel);
+extern tUDI_MetaLang   *UDI_int_GetCbType(udi_cb_t *gcb, udi_index_t *meta_cb_num);
 
 // --- Attribute Management ---
 extern udi_instance_attr_type_t udi_instance_attr_get_internal(udi_cb_t *gcb, const char *attr_name, udi_ubit32_t child_ID, void *attr_value, udi_size_t attr_length, udi_size_t *actual_length);
 
+// --- Layout ---
+extern size_t  _udi_marshal_step(void *buf, size_t cur_ofs, udi_layout_t **layoutp, va_list *values);
+extern size_t  _udi_marshal_values(void *buf, udi_layout_t *layout, va_list values);
+
+// --- Buffers ---
+extern udi_buf_t       *_udi_buf_allocate(const void *data, udi_size_t length, udi_buf_path_t path_handle);
+
 #endif
 

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