The Pedigree Project
0.1
|
Macros | |
#define | BYTE_ORDER LITTLE_ENDIAN |
#define | LWIP_NO_STDDEF_H 0 |
#define | LWIP_NO_INTTYPES_H 0 |
#define | X8_F "02" PRIx8 |
#define | LWIP_NO_LIMITS_H 0 |
#define | LWIP_CONST_CAST(target_type, val) ((target_type)((ptrdiff_t)val)) |
#define | LWIP_ALIGNMENT_CAST(target_type, val) LWIP_CONST_CAST(target_type, val) |
#define | LWIP_PTR_NUMERIC_CAST(target_type, val) LWIP_CONST_CAST(target_type, val) |
#define | LWIP_DECLARE_MEMORY_ALIGNED(variable_name, size) u8_t variable_name[LWIP_MEM_ALIGN_BUFFER(size)] |
#define | LWIP_MEM_ALIGN_SIZE(size) (((size) + MEM_ALIGNMENT - 1U) & ~(MEM_ALIGNMENT-1U)) |
#define | LWIP_MEM_ALIGN_BUFFER(size) (((size) + MEM_ALIGNMENT - 1U)) |
#define | LWIP_MEM_ALIGN(addr) ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1))) |
#define | PACK_STRUCT_BEGIN |
#define | PACK_STRUCT_END |
#define | PACK_STRUCT_FIELD(x) x |
#define | PACK_STRUCT_FLD_8(x) PACK_STRUCT_FIELD(x) |
#define | PACK_STRUCT_FLD_S(x) PACK_STRUCT_FIELD(x) |
#define | LWIP_UNUSED_ARG(x) (void)x |
All defines related to this section must not be placed in lwipopts.h, but in arch/cc.h! These options cannot be #defined in lwipopts.h since they are not options of lwIP itself, but options of the lwIP port to your system.
#define BYTE_ORDER LITTLE_ENDIAN |
#define LWIP_ALIGNMENT_CAST | ( | target_type, | |
val | |||
) | LWIP_CONST_CAST(target_type, val) |
#define LWIP_CONST_CAST | ( | target_type, | |
val | |||
) | ((target_type)((ptrdiff_t)val)) |
C++ const_cast<target_type>(val) equivalent to remove constness from a value (GCC -Wcast-qual)
Definition at line 199 of file arch.h.
Referenced by lwip_init(), lwip_strnstr(), and pbuf_skip().
#define LWIP_DECLARE_MEMORY_ALIGNED | ( | variable_name, | |
size | |||
) | u8_t variable_name[LWIP_MEM_ALIGN_BUFFER(size)] |
Allocates a memory buffer of specified size that is of sufficient size to align its start address using LWIP_MEM_ALIGN. You can declare your own version here e.g. to enforce alignment without adding trailing padding bytes (see LWIP_MEM_ALIGN_BUFFER) or your own section placement requirements.
e.g. if you use gcc and need 32 bit alignment:
#define LWIP_DECLARE_MEMORY_ALIGNED(variable_name, size) u8_t variable_name[size] __attribute__((aligned(4)))
or more portable:
#define LWIP_DECLARE_MEMORY_ALIGNED(variable_name, size) u32_t variable_name[(size + sizeof(u32_t) - 1) / sizeof(u32_t)]
#define LWIP_MEM_ALIGN | ( | addr | ) | ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1))) |
Align a memory pointer to the alignment defined by MEM_ALIGNMENT so that ADDR % MEM_ALIGNMENT == 0
Definition at line 248 of file arch.h.
Referenced by mem_init(), memp_init_pool(), and pbuf_alloc().
#define LWIP_MEM_ALIGN_BUFFER | ( | size | ) | (((size) + MEM_ALIGNMENT - 1U)) |
#define LWIP_MEM_ALIGN_SIZE | ( | size | ) | (((size) + MEM_ALIGNMENT - 1U) & ~(MEM_ALIGNMENT-1U)) |
Calculate memory size for an aligned buffer - returns the next highest multiple of MEM_ALIGNMENT (e.g. LWIP_MEM_ALIGN_SIZE(3) and LWIP_MEM_ALIGN_SIZE(4) will both yield 4 for MEM_ALIGNMENT == 4).
Definition at line 233 of file arch.h.
Referenced by mem_malloc(), mem_trim(), and pbuf_alloc().
#define LWIP_NO_INTTYPES_H 0 |
Define this to 1 in arch/cc.h of your port if your compiler does not provide the stdint.h header. You need to typedef the generic types listed in lwip/arch.h yourself in this case (u8_t, u16_t...). Define this to 1 in arch/cc.h of your port if your compiler does not provide the inttypes.h header. You need to define the format strings listed in lwip/arch.h yourself in this case (X8_F, U16_F...).
#define LWIP_NO_LIMITS_H 0 |
#define LWIP_NO_STDDEF_H 0 |
Define random number generator function of your system Platform specific diagnostic output.
Note the default implementation pulls in printf, which may in turn pull in a lot of standard libary code. In resource-constrained systems, this should be defined to something less resource-consuming. Platform specific assertion handling.
Note the default implementation pulls in printf, fflush and abort, which may in turn pull in a lot of standard libary code. In resource-constrained systems, this should be defined to something less resource-consuming. Define this to 1 in arch/cc.h of your port if you do not want to include stddef.h header to get size_t. You need to typedef size_t by yourself in this case.
#define LWIP_PTR_NUMERIC_CAST | ( | target_type, | |
val | |||
) | LWIP_CONST_CAST(target_type, val) |
#define LWIP_UNUSED_ARG | ( | x | ) | (void)x |
Packed structs support using #include files before and after struct to be packed.
The file included BEFORE the struct is "arch/bpstruct.h".
The file included AFTER the struct is "arch/epstruct.h".
This can be used to implement struct packing on MS Visual C compilers, see the Win32 port in the lwIP contrib repository for reference. For examples of packed struct declarations, see include/lwip/prot/ subfolder.
A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here.Eliminates compiler warning about unused arguments (GCC -Wextra -Wunused).
Definition at line 327 of file arch.h.
Referenced by lwip_init(), lwip_itoa(), memp_init_pool(), memp_malloc(), netif_set_link_down(), pbuf_coalesce(), and tcpip_send_msg_wait_sem().
#define PACK_STRUCT_BEGIN |
#define PACK_STRUCT_END |
#define PACK_STRUCT_FIELD | ( | x | ) | x |
Packed structs support. Placed between end of declaration of a packed struct and trailing semicolon.
For examples of packed struct declarations, see include/lwip/prot/ subfolder.
A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here.Packed structs support. Wraps u32_t and u16_t members.
For examples of packed struct declarations, see include/lwip/prot/ subfolder.
A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here.
#define PACK_STRUCT_FLD_8 | ( | x | ) | PACK_STRUCT_FIELD(x) |
Packed structs support. Wraps u8_t members, where some compilers warn that packing is not necessary.
For examples of packed struct declarations, see include/lwip/prot/ subfolder.
A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here.
#define PACK_STRUCT_FLD_S | ( | x | ) | PACK_STRUCT_FIELD(x) |
Packed structs support. Wraps members that are packed structs themselves, where some compilers warn that packing is not necessary.
For examples of packed struct declarations, see include/lwip/prot/ subfolder.
A port to GCC/clang is included in lwIP, if you use these compilers there is nothing to do here.