8a6d20066d127325f399a9c8eaf3455cb3ed4a66
[reactos.git] / sdk / lib / drivers / lwip / src / include / arch / cc.h
1 /* ReactOS-Specific lwIP binding header - by Cameron Gutman */
2
3 #include <wdm.h>
4
5 /* ROS-specific mem defs */
6 void *
7 malloc(size_t size);
8
9 void *
10 calloc(size_t count, size_t size);
11
12 void
13 free(void *mem);
14
15 void *
16 realloc(void *mem, size_t size);
17
18 /* mem_trim() must trim the buffer without relocating it.
19 * Since we can't do that, we just return the buffer passed in unchanged */
20 #define mem_trim(_m_, _s_) (_m_)
21
22 /* Unsigned int types */
23 typedef unsigned char u8_t;
24 typedef unsigned short u16_t;
25 typedef unsigned long u32_t;
26
27 /* Signed int types */
28 typedef signed char s8_t;
29 typedef signed short s16_t;
30 typedef signed long s32_t;
31
32 /* Memory pointer */
33 typedef ULONG_PTR mem_ptr_t;
34
35 /* Printf/DPRINT formatters */
36 #define U16_F "hu"
37 #define S16_F "hd"
38 #define X16_F "hx"
39 #define U32_F "lu"
40 #define S32_F "ld"
41 #define X32_F "lx"
42
43 /* Endianness */
44 #define BYTE_ORDER LITTLE_ENDIAN
45
46 /* Checksum calculation algorithm choice */
47 #define LWIP_CHKSUM_ALGORITHM 3
48
49 /* Diagnostics */
50 #define LWIP_PLATFORM_DIAG(x) (DbgPrint x)
51 #define LWIP_PLATFORM_ASSERT(x) ASSERTMSG(x, FALSE)
52
53 /* Synchronization */
54 #define SYS_ARCH_DECL_PROTECT(lev) sys_prot_t (lev)
55 #define SYS_ARCH_PROTECT(lev) sys_arch_protect(&(lev))
56 #define SYS_ARCH_UNPROTECT(lev) sys_arch_unprotect(lev)
57
58 /* Compiler hints for packing structures */
59 #define PACK_STRUCT_STRUCT
60 #define PACK_STRUCT_USE_INCLUDES
61