From 90dad97fc07f049383903a166631e2c257f9b8c1 Mon Sep 17 00:00:00 2001 From: Kacper Date: Tue, 16 Dec 2025 17:02:05 +0100 Subject: Add support for TLS in the libc --- lib/libc/include/malloc.h | 98 ----------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 lib/libc/include/malloc.h (limited to 'lib/libc/include/malloc.h') 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 -#include - -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 -- cgit v1.2.3