kiba-engine
memory.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include <kiba/defines.h>
9 
10 #define KB_KILOBYTE(n) (n * 1024)
11 #define KB_MEGABYTE(n) KB_KILOBYTE(KB_KILOBYTE(n))
12 #define KB_GIGABYTE(n) KB_KILOBYTE(KB_MEGABYTE(n))
13 
14 KB_LOCAL b8 memory_initialize(void);
15 KB_LOCAL void *memory_page_allocate(usize target_num_bytes, usize *res_num_bytes);
16 KB_LOCAL void memory_page_free(void *page_data);
17 KB_LOCAL void memory_shutdown(void);
18 
25 KB_API void *memory_allocate(usize size);
26 
33 KB_API void memory_free(void *mem, usize size);
34 
42 KB_API void *memory_zero(void *mem, usize size);
43 
52 KB_API void *memory_set(void *mem, u8 byte, usize size);
53 
62 KB_API void *memory_copy(void *dst, const void *src, usize size);
63 
74 KB_API void *memory_aligned_address(void *addr, usize alignment);
KB_API void * memory_aligned_address(void *addr, usize alignment)
Calculate properly aligned memory block address.
Definition: memory.c:85
KB_API void * memory_allocate(usize size)
Allocate memory.
Definition: memory.c:72
KB_API void * memory_zero(void *mem, usize size)
Zero out memory.
Definition: memory.c:79
KB_API void * memory_copy(void *dst, const void *src, usize size)
Copy memory.
Definition: memory.c:83
KB_API void * memory_set(void *mem, u8 byte, usize size)
Set content of memory block.
Definition: memory.c:81
KB_API void memory_free(void *mem, usize size)
Free memory.
Definition: memory.c:77
Global typedefs and macros.