summaryrefslogtreecommitdiff
path: root/docs/application/memory.md
diff options
context:
space:
mode:
authornodist <kevin.comas.git@gmail.com>2026-06-21 11:51:41 -0400
committernodist <kevin.comas.git@gmail.com>2026-06-21 11:51:41 -0400
commit3a9cf2508dc7341a6d8ff4b8174064600d704994 (patch)
tree63c3196cec86824f237ac82d92aa43c56010e607 /docs/application/memory.md
parent900445604bc38ef43d89f0c11f0cc61ce3cb0bce (diff)
update memory objs
Diffstat (limited to 'docs/application/memory.md')
-rw-r--r--docs/application/memory.md55
1 files changed, 16 insertions, 39 deletions
diff --git a/docs/application/memory.md b/docs/application/memory.md
index eda866f..fbc6b67 100644
--- a/docs/application/memory.md
+++ b/docs/application/memory.md
@@ -5,50 +5,27 @@
## Object Definitions
```c
-#define KPL_SLAB_HEADER(STRUCT) struct STRUCT *prev, *next;
+#define KPL_SLAB_HEADER(STRUCT) STRCUT *next
-typedef struct _kpl_slab_obj {
- KPL_SLAB_HEADER(_kpl_slab_obj);
+typdef strcut _kpl_slab_obj {
+ KPL_SLAB_LIST_HEADER(strcut _kpl_slab_obj);
} kpl_slab_obj;
-typedef struct _kpl_slab {
- size_t array_index;
- struct _kpl_slab *next;
- uint8_t array[];
-} kpl_slab_alloc;
+#define KPL_SLAB_LIST_HEADER(STRCUT) STRCUT *prev, *next
-typedef struct {
- uint32_t object_size, array_size;
- _Atomic size_t slab_length;
- kpl_slab *slab;
- kpl_slab_obj *head;
- kpl_mutex mutex;
-} kpl_slab;
+typdef strcut _kpl_slab_list_obj {
+ KPL_SLAB_LIST_HEADER(strcut _kpl_slab_list_obj);
+} kpl_slab_list_obj;
-#define KPL_POOL_HEADER(STRUCT) KPL_SLAB_HEADER(STRUCT); uint32_t obj_byte_size
+#define KPL_SLAB_TREE_HEADER(STRUCT) STRUCT *parent, *left, *right, uint8_t tree_weight
-typedef struct _kpl_pool_obj {
- KPL_POOL_HEADER(_kpl_pool_obj);
-} kpl_pool_obj;
-
-typedef strut {
- uint32_t min_obj_size;
- _Atomic size_t alloc_byte_size;
- kpl_pool_obj *head;
- kpl_mutex mutex;
-} kpl_pool;
-```
-
-## Pool Object Size
-
-The max size of an object in the pool is 2 \*\* 32
+typdef strcut _kpl_slab_tree_obj {
+ KPL_SLAB_TREE_HEADER(struct _kpl_slab_tree_obj);
+} kpl_slab_tree_obj;
-This allows for 4 aligned bytes after the `POOL_HEADER` macro
+#define KPL_POOL_HEADER(STRCUT) STRCUT *parent, *left, *right, uint8_t tree_weight, uint64_t obj_size : 56
-## Slab Leak Detection
-
-On debug builds before each slab is freed, all items removed from the slab should be found on the slabs pool
-
-## List Management
-
-## Tree Management
+typdef struct _kpl_pool_obj {
+ KPL_POOL_HEADER(struct _kpl_pool_obj);
+} kpl_pool_obj;
+```