diff options
| author | nodist <kevin.comas.git@gmail.com> | 2026-06-21 11:51:41 -0400 |
|---|---|---|
| committer | nodist <kevin.comas.git@gmail.com> | 2026-06-21 11:51:41 -0400 |
| commit | 3a9cf2508dc7341a6d8ff4b8174064600d704994 (patch) | |
| tree | 63c3196cec86824f237ac82d92aa43c56010e607 /docs/application/memory.md | |
| parent | 900445604bc38ef43d89f0c11f0cc61ce3cb0bce (diff) | |
update memory objs
Diffstat (limited to 'docs/application/memory.md')
| -rw-r--r-- | docs/application/memory.md | 55 |
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; +``` |
