summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--memory/memory.c19
-rw-r--r--memory/memory.h3
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);