#ifndef _UDI_H_
#define _UDI_H_
-// Use the core acess file to use the specific size types (plus va_arg)
-#include <acess.h>
+#include <stdint.h>
+#include <stdarg.h>
+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 */
+
+#if UDI_ABI_is_ia32
#include "udi/arch/x86.h"
+#else
+#error "Unknown UDI ABI"
+#endif
/**
* \name Values and Flags for udi_status_t
#ifndef _UDI_ARCH_x86_H_
#define _UDI_ARCH_x86_H_
-typedef Sint8 udi_sbit8_t; /* signed 8-bit: -2^7..2^7-1 */
-typedef Sint16 udi_sbit16_t; /* signed 16-bit: -2^15..2^15-1 */
-typedef Sint32 udi_sbit32_t; /* signed 32-bit: -2^31..2^31-1 */
-typedef Uint8 udi_ubit8_t; /* unsigned 8-bit: 0..28-1 */
-typedef Uint16 udi_ubit16_t; /* unsigned 16-bit: 0..216-1 */
-typedef Uint32 udi_ubit32_t; /* unsigned 32-bit: 0..232-1 */
-
typedef udi_ubit8_t udi_boolean_t; /* 0=False; 1..28-1=True */
#define FALSE 0
#define TRUE 1
-typedef size_t udi_size_t; /* buffer size */
+typedef uint32_t udi_size_t; /* buffer size */
typedef udi_ubit8_t udi_index_t; /* zero-based index type */
typedef void *_udi_handle_t;
typedef _udi_handle_t udi_origin_t;
#define UDI_NULL_ORIGIN _NULL_HANDLE
-typedef Sint64 udi_timestamp_t;
+typedef int64_t udi_timestamp_t;
#define UDI_HANDLE_IS_NULL(handle, handle_type) (handle == NULL)
-#define UDI_HANDLE_ID(handle, handle_type) ((Uint32)handle)
+#define UDI_HANDLE_ID(handle, handle_type) ((uint32_t)handle)
/**
* \name va_arg wrapper
* \see ::udi_timer_start_repeating, ::udi_timer_start
*/
udi_ubit32_t min_timer_res;
-} PACKED;
+} __attribute__((packed));
/**
* \brief Primary Region Context data
* \brief Pointer to the driver instance's initial region data
*/
void *rdata;
-} PACKED;
+} __attribute__((packed));
/**
* \brief Child Channel context