summaryrefslogtreecommitdiff
path: root/lib/libc/include/libc.h
diff options
context:
space:
mode:
authorKacper <kacper@mail.openlinux.dev>2025-12-15 18:24:54 +0100
committerKacper <kacper@mail.openlinux.dev>2025-12-15 18:24:54 +0100
commit69e6fe89fa9baafeca3e3515bb50897cd8ee7c35 (patch)
tree489046ce167b8b20d205f87f4ae1f4b680c19b43 /lib/libc/include/libc.h
parent0d5bffe9d2caadc1215c875e560c52bca5161c54 (diff)
Add getauxval and cleanup libc startup
Diffstat (limited to 'lib/libc/include/libc.h')
-rw-r--r--lib/libc/include/libc.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/libc/include/libc.h b/lib/libc/include/libc.h
index 6f233d35..87d4e88f 100644
--- a/lib/libc/include/libc.h
+++ b/lib/libc/include/libc.h
@@ -1,24 +1,25 @@
#ifndef __LIBC_LIBC_H
#define __LIBC_LIBC_H
+#include <stddef.h>
#include <stdatomic.h>
-#define likely(x) __builtin_expect(!!(x), 1)
-#define unlikely(x) __builtin_expect(!!(x), 0)
-#define __unused __attribute__((unused))
-#define aligned(type) __attribute__((aligned(__alignof__(type))))
-#define weak_reference(old, new) \
- extern __typeof(old)((new)) __attribute__((__weak__, __alias__(#old)))
+#define weak_reference(old, new) extern __typeof(old)((new)) __attribute__((__weak__, __alias__(#old)))
+
+struct libc {
+ size_t auxv[32];
-static struct libc {
enum {
LIBC_ENVP_TOUCHED = 1 << 0,
} flags;
+
struct {
volatile atomic_flag abort;
volatile atomic_flag malloc;
volatile atomic_flag environ;
} lock;
-} libc = { .lock = { ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT } };
+};
+
+extern struct libc __libc;
#endif