Go to the documentation of this file.
6 #define GLOBAL_ASM(...)
9 #if !defined(__sgi) && (!defined(NON_MATCHING) || !defined(AVOID_UB))
15 #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
17 #define GLUE(a, b) a ## b
18 #define GLUE2(a, b) GLUE(a, b)
22 #define UNUSED __attribute__((unused))
29 #define NORETURN __attribute__((noreturn))
36 #define STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
38 #define STATIC_ASSERT(cond, msg) typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]
43 #define ALIGNED8 __attribute__((aligned(8)))
50 #define ALIGNED16 __attribute__((aligned(16)))
56 #define VIRTUAL_TO_PHYSICAL(addr) ((uintptr_t)(addr) & 0x1FFFFFFF)
59 #define PHYSICAL_TO_VIRTUAL(addr) ((uintptr_t)(addr) | 0x80000000)
62 #define VIRTUAL_TO_PHYSICAL2(addr) ((u8 *)(addr) - 0x80000000U)
65 #define ALIGN16(val) (((val) + 0xF) & ~0xF)
73 #define GET_PACKED_END(dl) (((u8*) dl) + sizeof(dl) - sizeof(dl[0]) - 0x07000000)