Memory layer implementation.
More...
Go to the source code of this file.
|
#define | KB_PAGE_SIZE KB_MEGABYTE(8) |
|
#define | KB_MEMORY_MAX_SIZE_CLASS 4 |
|
|
b8 | memory_initialize (void) |
|
void * | memory_page_allocate (usize target_num_bytes, usize *res_num_bytes) |
|
void | memory_page_free (void *page_data) |
|
void | memory_shutdown (void) |
|
void * | memory_allocate (usize size) |
| Allocate memory. More...
|
|
void | memory_free (void *mem, usize size) |
| Free memory. More...
|
|
void * | memory_zero (void *mem, usize size) |
| Zero out memory. More...
|
|
void * | memory_set (void *mem, u8 byte, usize size) |
| Set content of memory block. More...
|
|
void * | memory_copy (void *dst, const void *src, usize size) |
| Copy memory. More...
|
|
void * | memory_aligned_address (void *addr, usize alignment) |
| Calculate properly aligned memory block address. More...
|
|
|
memory_page * | page_free_list [KB_MEMORY_MAX_SIZE_CLASS+1] = {0} |
|
Memory layer implementation.
- See also
- core/memory.h
Definition in file memory.c.
◆ memory_aligned_address()
void* memory_aligned_address |
( |
void * |
addr, |
|
|
usize |
alignment |
|
) |
| |
Calculate properly aligned memory block address.
Calculate a new address which is a multiple of the alignment provided. At most alignment bytes above provided address.
- Parameters
-
addr | original memory block addr |
alignment | number of bytes to be aligned by |
- Returns
- aligned new address
Definition at line 85 of file memory.c.
◆ memory_allocate()
void* memory_allocate |
( |
usize |
size | ) |
|
Allocate memory.
- Parameters
-
size | number of bytes to be allocated |
- Returns
- pointer to beginning of allocated block (zeroed out)
Definition at line 72 of file memory.c.
◆ memory_copy()
void* memory_copy |
( |
void * |
dst, |
|
|
const void * |
src, |
|
|
usize |
size |
|
) |
| |
Copy memory.
- Parameters
-
dst | pointer to beginning of the destination memory block |
src | pointer to beginning of the source memory block |
size | number of bytes to be copied |
- Returns
- pointer to beginning of the destination block
Definition at line 83 of file memory.c.
◆ memory_free()
void memory_free |
( |
void * |
mem, |
|
|
usize |
size |
|
) |
| |
Free memory.
- Parameters
-
mem | pointer to beginning of memory block |
size | number of bytes to be freed |
Definition at line 77 of file memory.c.
◆ memory_set()
void* memory_set |
( |
void * |
mem, |
|
|
u8 |
byte, |
|
|
usize |
size |
|
) |
| |
Set content of memory block.
- Parameters
-
mem | pointer to beginning of memory block |
byte | the value to set every byte to |
size | number of bytes to be set |
- Returns
- pointer to beginning of the block
Definition at line 81 of file memory.c.
◆ memory_zero()
void* memory_zero |
( |
void * |
mem, |
|
|
usize |
size |
|
) |
| |
Zero out memory.
- Parameters
-
mem | pointer to beginning of memory block |
size | number of bytes to be zeroed out |
- Returns
- pointer to beginning of zeroed block
Definition at line 79 of file memory.c.