Loading...
Searching...
No Matches
Go to the documentation of this file.
15#define KIB(X) (Kernel::UInt64)((X) / 1024)
19#define kib_cast(X) (Kernel::UInt64)((X) *1024)
23#define MIB(X) (Kernel::UInt64)((Kernel::UInt64) KIB(X) / 1024)
27#define mib_cast(X) (Kernel::UInt64)((Kernel::UInt64) kib_cast(X) * 1024)
31#define GIB(X) (Kernel::UInt64)((Kernel::UInt64) MIB(X) / 1024)
35#define gib_cast(X) (Kernel::UInt64)((Kernel::UInt64) mib_cast(X) * 1024)
39#define TIB(X) (Kernel::UInt64)((Kernel::UInt64) GIB(X) / 1024)
43#define tib_cast(X) ((Kernel::UInt64) gib_cast(X) * 1024)
47#define ARRAY_SIZE(a) \
48 (((sizeof(a) / sizeof(*(a))) / (static_cast<Kernel::Size>(!(sizeof(a) % sizeof(*(a)))))))
51#define DEPRECATED ATTRIBUTE(deprecated)
54#define ALIGN(X) __attribute__((aligned(X)))
58#define ATTRIBUTE(...) __attribute__((__VA_ARGS__))
62#define __NE_VER__ (2024)
70#define EXTERN_C extern "C"
74#define MAKE_ENUM(NAME) enum NAME {
83#ifndef MAKE_STRING_ENUM
84#define MAKE_STRING_ENUM(NAME) namespace NAME {
88#define ENUM_STRING(NAME, VAL) inline constexpr const char* e##NAME = VAL
91#ifndef END_STRING_ENUM
92#define END_STRING_ENUM() }
96#define RTL_ALLOCA(sz) __builtin_alloca(sz)
100#define CANT_REACH() __builtin_unreachable()
103#define kInvalidAddress 0xFBFBFBFBFBFBFBFB
104#define kBadAddress 0x0000000000000000
105#define kMaxAddr 0xFFFFFFFFFFFFFFFF
106#define kPathLen 0x100
108#define PACKED ATTRIBUTE(packed)
109#define NO_EXEC ATTRIBUTE(noexec)
116#define STRINGIFY(X) #X
117#define NE_UNUSED(X) ((Kernel::Void) X)
120#define RGB(R, G, B) ((Kernel::UInt32)((0xFF << 24) | ((R) << 16) | ((G) << 8) | (B)))
124#define DBG_TRAP() asm volatile("int $3")
126#define DBG_TRAP() ((Kernel::Void) 0)
129#define LIKELY(ARG) ((ARG) ? MUST_PASS(NO) : ((Kernel::Void) 0))
130#define UNLIKELY(ARG) LIKELY(!(ARG))
132#define RTL_ENDIAN(address, value) \
133 (((reinterpret_cast<Kernel::Char*>(address)[0]) == (value)) ? (Kernel::Endian::kEndianBig) \
134 : (Kernel::Endian::kEndianLittle))
145#define BOOL Kernel::Boolean
147#ifdef RTL_INIT_OBJECT
148#undef RTL_INIT_OBJECT
151#define RTL_INIT_OBJECT(OBJ, TYPE, ...) TYPE OBJ = TYPE(__VA_ARGS__)