diff options
author | Ian Moffett <ian@osmora.org> | 2025-10-17 16:03:21 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-10-17 16:03:21 -0400 |
commit | 6502aae76e88e552281fa9c920dcc22cd4a836f5 (patch) | |
tree | 5acf506a90462eb241c09a7dd801bb6c53c58b6e /src/sys | |
parent | f31e63d79d2a7a4a6f66bacb891af8bd6be00ea5 (diff) |
kern: Add kernel realloc() function
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys')
-rw-r--r-- | src/sys/include/os/kalloc.h | 8 | ||||
-rw-r--r-- | src/sys/os/os_kalloc.c | 11 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/sys/include/os/kalloc.h b/src/sys/include/os/kalloc.h index 143c4f9..aaaaa74 100644 --- a/src/sys/include/os/kalloc.h +++ b/src/sys/include/os/kalloc.h @@ -48,6 +48,14 @@ void *kalloc(size_t sz); /* + * Reallocates memory pool created by `dynalloc()' + * + * @old_ptr: Pointer to old pool. + * @newsize: Size of new pool. + */ +void *krealloc(void *old_ptr, size_t newsize); + +/* * Free a chunk of memory given to by * `ptr' * diff --git a/src/sys/os/os_kalloc.c b/src/sys/os/os_kalloc.c index 53e2e13..a5e48e5 100644 --- a/src/sys/os/os_kalloc.c +++ b/src/sys/os/os_kalloc.c @@ -64,6 +64,17 @@ kalloc(size_t sz) return tmp; } +void * +krealloc(void *old_ptr, size_t newsize) +{ + void *tmp; + + spinlock_acquire(&lock); + tmp = tlsf_realloc(tlsf_ctx, old_ptr, newsize); + spinlock_release(&lock); + return tmp; +} + /* * Memory deallocation */ |