X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FInterfaces%2FUDI%2Finclude%2Fudi.h;h=0e097d7581ee9b3e1a83ed0e35d2fbd562f79125;hb=82e814024416fac7949a1e158a4532a5a1ed546f;hp=53953c07d0cc2bb1c1efc58182a846ee2e1927b5;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Interfaces/UDI/include/udi.h b/KernelLand/Modules/Interfaces/UDI/include/udi.h index 53953c07..0e097d75 100644 --- a/KernelLand/Modules/Interfaces/UDI/include/udi.h +++ b/KernelLand/Modules/Interfaces/UDI/include/udi.h @@ -4,10 +4,25 @@ #ifndef _UDI_H_ #define _UDI_H_ -// Use the core acess file to use the specific size types (plus va_arg) -#include +#include +#include +typedef int8_t udi_sbit8_t; /* signed 8-bit: -2^7..2^7-1 */ +typedef int16_t udi_sbit16_t; /* signed 16-bit: -2^15..2^15-1 */ +typedef int32_t udi_sbit32_t; /* signed 32-bit: -2^31..2^31-1 */ +typedef uint8_t udi_ubit8_t; /* unsigned 8-bit: 0..28-1 */ +typedef uint16_t udi_ubit16_t; /* unsigned 16-bit: 0..216-1 */ +typedef uint32_t udi_ubit32_t; /* unsigned 32-bit: 0..232-1 */ + +#ifndef NULL +# define NULL ((void*)0) +#endif + +#if UDI_ABI_is_ia32 #include "udi/arch/x86.h" +#else +#error "Unknown UDI ABI" +#endif /** * \name Values and Flags for udi_status_t @@ -79,11 +94,29 @@ typedef const udi_ubit8_t udi_layout_t; */ +typedef struct udi_init_s udi_init_t; +typedef struct udi_primary_init_s udi_primary_init_t; +typedef struct udi_secondary_init_s udi_secondary_init_t; +typedef struct udi_ops_init_s udi_ops_init_t; +typedef struct udi_cb_init_s udi_cb_init_t; +typedef struct udi_cb_select_s udi_cb_select_t; +typedef struct udi_gcb_init_s udi_gcb_init_t; + +typedef struct udi_init_context_s udi_init_context_t; +typedef struct udi_limits_s udi_limits_t; +typedef struct udi_chan_context_s udi_chan_context_t; +typedef struct udi_child_chan_context_s udi_child_chan_context_t; + +typedef void udi_op_t(void); +typedef udi_op_t * const udi_ops_vector_t; + // === INCLUDE SUB-SECTIONS === #include "udi/cb.h" // Control Blocks +#include "udi/time.h" // Timer Services #include "udi/log.h" // Logging #include "udi/attr.h" // Attributes #include "udi/strmem.h" // String/Memory +#include "udi/queues.h" // Queues #include "udi/buf.h" // Buffers #include "udi/mem.h" // Memory Management #include "udi/imc.h" // Inter-module Communication