summaryrefslogtreecommitdiff
path: root/source/base/base.h
diff options
context:
space:
mode:
authornasr <nsrddyn@gmail.com>2026-03-26 22:35:30 +0100
committernasr <nsrddyn@gmail.com>2026-04-13 17:24:42 +0200
commitdd5586abec207dd4acd16d51ce0d392c03e5e957 (patch)
treee56573f49ebb2a3236a39148842dc80bde5a286d /source/base/base.h
feature(main): initmain
feature(main): init
Diffstat (limited to 'source/base/base.h')
-rwxr-xr-xsource/base/base.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/source/base/base.h b/source/base/base.h
new file mode 100755
index 0000000..ef23391
--- /dev/null
+++ b/source/base/base.h
@@ -0,0 +1,73 @@
1#ifndef BASE_H
2#define BASE_H
3
4/* assert an expression and output the file and the line */
5
6#define internal static
7#define global_variable static
8#define local_persist static
9
10#define ERR_OK 0
11#define ERR_IO 1
12#define ERR_PARSE 2
13#define ERR_PERM 3
14#define ERR_INVALID 4
15
16#define KiB(n) (((u64)(n)) << 10)
17#define MiB(n) (((u64)(n)) << 20)
18#define GiB(n) (((u64)(n)) << 30)
19
20#define unused(x) (void)(x)
21
22#define PATH_MAX_LEN 128
23#define BUFF_SMALL 128
24#define BUFF_DEFAULT 256
25#define BUFF_LARGE 512
26
27#define NIL 0
28
29#define DEPRECATED __attribute__((__deprecated__))
30
31#if defined(__arm__) || defined(__aarch64__)
32#define breakpoint __asm__ volatile("brk #0");
33#define temp_breakpoint __asm__ volatile("udf #0");
34#elif defined(__i386__) || defined(__x86_64__)
35#define breakpoint __asm__ volatile("int3");
36#endif
37
38#define MemCpy(dest, src, len) memcpy((dest), (src), (len))
39#define MemSet(dest, len) memset((dest), (0), (len))
40
41#if COMPILER_MSVC || (COMPILER_CLANG && OS_WINDOWS)
42#pragma section(".rdata$", read)
43#define read_only __declspec(allocate(".rdata$"))
44#elif (COMPILER_CLANG && OS_LINUX)
45#define read_only __attribute__((section(".rodata")))
46#else
47#define read_only
48#endif
49
50typedef uint64_t u64;
51typedef uint32_t u32;
52typedef uint16_t u16;
53typedef uint8_t u8;
54
55typedef int8_t i8;
56typedef int16_t i16;
57typedef int32_t i32;
58typedef int64_t i64;
59
60typedef float f32;
61typedef double f64;
62
63typedef i32 b32;
64typedef i16 b16;
65typedef u8 b8;
66
67typedef uintptr_t umm;
68typedef intptr_t smm;
69
70#define TRUE (0 == 0)
71#define FALSE (0 != 0)
72
73#endif