diff options
-rw-r--r-- | memory/memory.c | 19 | ||||
-rw-r--r-- | memory/memory.h | 3 |
2 files changed, 7 insertions, 15 deletions
diff --git a/memory/memory.c b/memory/memory.c index 0c998c7..7fb0fc2 100644 --- a/memory/memory.c +++ b/memory/memory.c @@ -1,17 +1,12 @@ #include "memory.h" -size_t clamp_top(size_t size, size_t top) -{ - return size > top ? top : size; +b8 is_power_of_two(uintptr_t x) { + return (x & (x-1)) == 0; } -uintptr_t mem_clamp_top(uintptr_t mem, uintptr_t top) +uintptr_t fast_modulo(uintptr_t p, uintptr_t a) { - return mem > top ? top : mem; -} - -b8 is_power_of_two(uintptr_t x) { - return (x & (x-1)) == 0; + return (p & (a-1)); } uintptr_t align_forward(uintptr_t ptr, size_t alignment) { @@ -21,7 +16,7 @@ uintptr_t align_forward(uintptr_t ptr, size_t alignment) { p = ptr; a = (uintptr_t)alignment; - modulo = p & (a-1); + modulo = fast_modulo(p, a); if (modulo != 0) { p += (a - modulo); @@ -133,10 +128,6 @@ void stack_init(struct stack* s, void *backing_store, size_t capacity) s->capacity = capacity; } -uintptr_t fast_modulo(uintptr_t p, uintptr_t a) -{ - return (p & (a-1)); -} size_t calc_padding_with_header(uintptr_t ptr, uintptr_t alignment, size_t hdr_sz) { diff --git a/memory/memory.h b/memory/memory.h index 94b5022..e402c0b 100644 --- a/memory/memory.h +++ b/memory/memory.h @@ -40,6 +40,8 @@ struct ResVoid { }; b8 is_power_of_two(uintptr_t x); +uintptr_t fast_modulo(uintptr_t p, uintptr_t a); +uintptr_t align_forward(uintptr_t ptr, size_t align); //=========================================================================================== // ---------------------------------- ARENA ------------------------------------------------- @@ -52,7 +54,6 @@ struct Arena { size_t capacity; }; -uintptr_t align_forward(uintptr_t ptr, size_t align); void arena_init(struct Arena *a, unsigned char *backing_store, size_t capacity); void* arena_alloc_aligned(struct Arena* a, size_t size, size_t align); void* arena_alloc(struct Arena* a, size_t size); |