/* integer of 8 bits */ typedef NETWIBDEF_TYPE_INT8 netwib_int8; typedef NETWIBDEF_TYPE_UINT8 netwib_uint8; /* integer of 16 bits */ typedef NETWIBDEF_TYPE_INT16 netwib_int16; typedef NETWIBDEF_TYPE_UINT16 netwib_uint16; /* integer of 32 bits */ typedef NETWIBDEF_TYPE_INT32 netwib_int32; typedef NETWIBDEF_TYPE_UINT32 netwib_uint32; /* integer of 64 bits */ #if NETWIBDEF_TYPE_INT64_FAKE == 0 /* define the type */ typedef NETWIBDEF_TYPE_INT64 netwib_int64; typedef NETWIBDEF_TYPE_UINT64 netwib_uint64; #define NETWIB_INT64_FAKE 0 #else /* define a fake structure allowing easy storage, but unusable for math */ typedef struct { netwib_uint32 high; netwib_uint32 low; } netwib_uint64; typedef netwib_uint64 netwib_int64; #define NETWIB_INT64_FAKE 1 #endif /* maximum size integer on the computer */ #if NETWIB_INT64_FAKE == 0 typedef netwib_int64 netwib_intmax; typedef netwib_uint64 netwib_uintmax; #define NETWIB_INTMAX_BITS 64 #else typedef netwib_int32 netwib_intmax; typedef netwib_uint32 netwib_uintmax; #define NETWIB_INTMAX_BITS 32 #endif /* size of pointers on the computer */ #if NETWIBDEF_ARCH_BITS == 32 typedef netwib_int32 netwib_intptr; typedef netwib_uint32 netwib_uintptr; #define NETWIB_INTPTR_BITS 32 #elif NETWIBDEF_ARCH_BITS == 64 typedef netwib_int64 netwib_intptr; typedef netwib_uint64 netwib_uintptr; #define NETWIB_INTPTR_BITS 64 #else #error "Unknown value for NETWIBDEF_ARCH_BITS" #endif /* char */ typedef char netwib_char; /* byte */ typedef unsigned char netwib_byte; /* pointer */ typedef void* netwib_ptr; typedef const void* netwib_constptr; /* data */ typedef netwib_byte* netwib_data; typedef const netwib_byte* netwib_constdata; /* string */ typedef netwib_char* netwib_string; typedef const netwib_char* netwib_conststring; /* boolean */ typedef enum { NETWIB_FALSE = 0, NETWIB_TRUE = !NETWIB_FALSE } netwib_bool; /* comparison */ typedef enum { NETWIB_CMP_LT = -1, NETWIB_CMP_EQ = 0, NETWIB_CMP_GT = +1 } netwib_cmp; /* netwib contains several enum. User can define its own values starting from 10000 */ #define NETWIB_ENUM_USER_BEGIN 10000 /*-------------------------------------------------------------*/ /*************************************************************** * Note about return values : * * Every function returns a "netwib_err" which indicates : * * - NETWIB_ERR_OK : everything went fine * * - NETWIB_ERR_xyz : something strange occurred... * ***************************************************************/ /*-------------------------------------------------------------*/ /*************************************************************** * Note about parameters : * * Some functions can accept NULL as parameter. This indicates * * the corresponding parameter is not needed. * * However this special case needs resources and specific * * instruction paths. So, this is not supported for parameters * * such as netwib_ring, netwib_ips, etc. If you think we * * missed one function needing this features, please contact * * us. * ***************************************************************/