summaryrefslogtreecommitdiff
path: root/lib/libc/include/malloc.h
diff options
context:
space:
mode:
authorKacper <kacper@mail.openlinux.dev>2025-12-16 17:02:05 +0100
committerKacper <kacper@mail.openlinux.dev>2025-12-16 17:02:05 +0100
commit90dad97fc07f049383903a166631e2c257f9b8c1 (patch)
tree096cd247ecfda9e46598215a4f32aecedeedda90 /lib/libc/include/malloc.h
parent0e832a9329cc4d4647e1ce529846073f21e66991 (diff)
Add support for TLS in the libc
Diffstat (limited to 'lib/libc/include/malloc.h')
-rw-r--r--lib/libc/include/malloc.h98
1 files changed, 0 insertions, 98 deletions
diff --git a/lib/libc/include/malloc.h b/lib/libc/include/malloc.h
deleted file mode 100644
index b7cb0093..00000000
--- a/lib/libc/include/malloc.h
+++ /dev/null
@@ -1,98 +0,0 @@
-#ifndef __LIBC_MALLOC_H
-#define __LIBC_MALLOC_H
-
-#include <stdatomic.h>
-#include <stdint.h>
-
-struct class {
- uint32_t size;
- uint32_t count;
-};
-
-struct page {
- volatile atomic_flag lock;
-
- enum {
- PAGE_SMALL = 0x0,
- PAGE_MEDIUM = 0x1,
- PAGE_LARGE = 0x2,
- } flags;
-
- struct {
- uint32_t size;
- uint32_t used;
- uint32_t count;
- } block;
-
- uint8_t *bitmap;
- uint8_t *heap;
-
- struct page *next;
- struct page *prev;
-};
-
-extern struct page *__malloc_pvec;
-
-#define SMALL_PAGE_SIZE_SHIFT 16
-#define SMALL_PAGE_SIZE (1 << SMALL_PAGE_SIZE_SHIFT)
-#define SMALL_PAGE_MASK (~((uintptr_t)SMALL_PAGE_SIZE - 1))
-
-#define MEDIUM_PAGE_SIZE_SHIFT 22
-#define MEDIUM_PAGE_SIZE (1 << MEDIUM_PAGE_SIZE_SHIFT)
-#define MEDIUM_PAGE_MASK (~((uintptr_t)MEDIUM_PAGE_SIZE - 1))
-
-#define LARGE_PAGE_SIZE_SHIFT 26
-#define LARGE_PAGE_SIZE (1 << LARGE_PAGE_SIZE_SHIFT)
-#define LARGE_PAGE_MASK (~((uintptr_t)LARGE_PAGE_SIZE - 1))
-
-#define SMALL_CLASS(n) \
- { (((n)) * 16), (SMALL_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) }
-#define MEDIUM_CLASS(n) \
- { (((n)) * 16), \
- (MEDIUM_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) }
-#define LARGE_CLASS(n) \
- { (((n)) * 16), (LARGE_PAGE_SIZE - sizeof(struct page)) / (((n)) * 16) }
-
-static const struct class global_size_class[] = {
- SMALL_CLASS(1), SMALL_CLASS(1), SMALL_CLASS(2),
- SMALL_CLASS(3), SMALL_CLASS(4), SMALL_CLASS(5),
- SMALL_CLASS(6), SMALL_CLASS(7), SMALL_CLASS(8),
- SMALL_CLASS(9), SMALL_CLASS(10), SMALL_CLASS(11),
- SMALL_CLASS(12), SMALL_CLASS(13), SMALL_CLASS(14),
- SMALL_CLASS(15), SMALL_CLASS(16), SMALL_CLASS(17),
- SMALL_CLASS(18), SMALL_CLASS(19), SMALL_CLASS(20),
- SMALL_CLASS(21), SMALL_CLASS(22), SMALL_CLASS(23),
- SMALL_CLASS(24), SMALL_CLASS(25), SMALL_CLASS(26),
- SMALL_CLASS(27), SMALL_CLASS(28), SMALL_CLASS(29),
- SMALL_CLASS(30), SMALL_CLASS(31), SMALL_CLASS(32),
- SMALL_CLASS(33), SMALL_CLASS(34), SMALL_CLASS(35),
- SMALL_CLASS(36), SMALL_CLASS(37), SMALL_CLASS(38),
- SMALL_CLASS(39), SMALL_CLASS(40), SMALL_CLASS(41),
- SMALL_CLASS(42), SMALL_CLASS(43), SMALL_CLASS(44),
- SMALL_CLASS(45), SMALL_CLASS(46), SMALL_CLASS(47),
- SMALL_CLASS(48), SMALL_CLASS(49), SMALL_CLASS(50),
- SMALL_CLASS(51), SMALL_CLASS(52), SMALL_CLASS(53),
- SMALL_CLASS(54), SMALL_CLASS(55), SMALL_CLASS(56),
- SMALL_CLASS(57), SMALL_CLASS(58), SMALL_CLASS(59),
- SMALL_CLASS(60), SMALL_CLASS(61), SMALL_CLASS(62),
- SMALL_CLASS(63), SMALL_CLASS(64), SMALL_CLASS(80),
- SMALL_CLASS(96), SMALL_CLASS(112), SMALL_CLASS(128),
- SMALL_CLASS(160), SMALL_CLASS(192), SMALL_CLASS(224),
- SMALL_CLASS(256), MEDIUM_CLASS(320), MEDIUM_CLASS(384),
- MEDIUM_CLASS(448), MEDIUM_CLASS(512), MEDIUM_CLASS(640),
- MEDIUM_CLASS(768), MEDIUM_CLASS(896), MEDIUM_CLASS(1024),
- MEDIUM_CLASS(1280), MEDIUM_CLASS(1536), MEDIUM_CLASS(1792),
- MEDIUM_CLASS(2048), MEDIUM_CLASS(2560), MEDIUM_CLASS(3072),
- MEDIUM_CLASS(3584), MEDIUM_CLASS(4096), MEDIUM_CLASS(5120),
- MEDIUM_CLASS(6144), MEDIUM_CLASS(7168), MEDIUM_CLASS(8192),
- MEDIUM_CLASS(10240), MEDIUM_CLASS(12288), MEDIUM_CLASS(14336),
- MEDIUM_CLASS(16384), LARGE_CLASS(20480), LARGE_CLASS(24576),
- LARGE_CLASS(28672), LARGE_CLASS(32768), LARGE_CLASS(40960),
- LARGE_CLASS(49152), LARGE_CLASS(57344), LARGE_CLASS(65536),
- LARGE_CLASS(81920), LARGE_CLASS(98304), LARGE_CLASS(114688),
- LARGE_CLASS(131072), LARGE_CLASS(163840), LARGE_CLASS(196608),
- LARGE_CLASS(229376), LARGE_CLASS(262144), LARGE_CLASS(327680),
- LARGE_CLASS(393216), LARGE_CLASS(458752), LARGE_CLASS(524288)
-};
-
-#endif