1 #ifndef _LIBMACH_COMPAT_H_ 2 #define _LIBMACH_COMPAT_H_ 3 4 /* BSD like types */ 5 typedef signed char schar; 6 typedef unsigned char uchar; 7 typedef unsigned int uint; 8 typedef unsigned long ulong; 9 typedef unsigned long long uvlong; 10 11 typedef unsigned short u16int; 12 typedef short s16int; 13 typedef unsigned int u32int; 14 typedef int s32int; 15 typedef unsigned long long u64int; 16 typedef long long s64int; 17 18 #ifndef _WIN32 19 typedef ulong size_t; 20 #endif 21 22 DECLSPEC_NORETURN 23 NTSYSAPI 24 VOID 25 NTAPI 26 RtlRaiseStatus(IN NTSTATUS Status); 27 28 #undef assert 29 #define assert(x) do { \ 30 if (!(x)) { \ 31 werrstr("(%s:%d) assertion " #x " failed\n", __FILE__, __LINE__); \ 32 RtlRaiseStatus(STATUS_ASSERTION_FAILURE); \ 33 } \ 34 } while (0) 35 #define offsetof(x,y) FIELD_OFFSET(x,y) 36 #define nil (0) 37 38 #define nelem(arr) (sizeof((arr)[0]) / sizeof((arr))) 39 40 int readn(void *fd, char *buf, ulong len); 41 int seek(void *fd, ulong off, int mode); 42 43 void *RosSymAllocMemZero(ulong num, ulong size); 44 void *RosSymRealloc(void *mem, ulong newsize); 45 void xfree(void *v); 46 47 #define werrstr(str, ...) DPRINT(str "\n" ,##__VA_ARGS__) 48 #if 0 49 #ifdef NDEBUG 50 #define werrstr(x, ...) 51 #else 52 #define werrstr(x, ...) printf("(%s:%d) " x "\n",__FILE__,__LINE__,##__VA_ARGS__) 53 #endif 54 #endif 55 56 #define malloc(x) RosSymAllocMem(x) 57 #define mallocz(x,y) RosSymAllocMemZero(x,y) 58 #define free(x) xfree(x) 59 #define USED(x) (*((char *)&(x)) ^= 0) 60 #define memset(x,y,z) RtlZeroMemory(x,z) 61 62 #endif/*_LIBMACH_COMPAT_H_*/ 63