C++ Crashkurs
#include "utils/alloc.h"#include "utils/alloc_buddy.h"#include "utils/math.h"#include "utils/string.h"#include "machine/cache.h"#include "debug/assert.h"
Include dependency graph for alloc.cc:Functions | |
| static void * | reserve (void *start, size_t size) |
| Memory reservation function for allocator Will return memory from a statically allocated char array in bss. | |
| void * | malloc (size_t size) |
| Allocate a memory block The memory is not initialized. | |
| void | free (void *ptr) |
| Free an allocated memory block. | |
| void * | realloc (void *ptr, size_t size) |
| Change the size of an allocated memory block The contents will be unchanged in the range from the start of the region up to the minimum of the old and new sizes. If the new size is larger than the old size, the added memory will not be initialized. | |
| void * | calloc (size_t nmemb, size_t size) |
| Allocate memory for an array of elements The memory is set to zero. | |
Constants | |
| cache_aligned bool | in_use = false |
| Concurrent access is not allowed Use assertions to detect bugs. | |
| static const size_t | ALLOC_LOG2 = 22 |
| Reserved memory size as power of 2. | |
| static const size_t | mem_size = 1 << ALLOC_LOG2 |
| (Resulting) reserved memory size | |
| static char | mem [mem_size] |
| Reserved memory (will be statically allocated in bss) | |
| static Allocator::Buddy< 4, ALLOC_LOG2, sizeof(size_t) *2, reserve > | allocator |
| Instantiate a Buddy allocator using the custom reserve function. | |
Function Documentation
|
static |
Memory reservation function for allocator Will return memory from a statically allocated char array in bss.
- Parameters
-
start Start address for requested memory, if nullptr it will use the pointer to the char array instead size Requested memory size
- Returns
- If the requested size after the start address is within the allocated char array, the start address is returned – nullptr otherwise.
| void * malloc | ( | size_t | size | ) |
Allocate a memory block The memory is not initialized.
- Parameters
-
size Requested size of memory in bytes.
- Returns
- Pointer to memory or
nullptron error (no memory available) or if size was zero.
| void free | ( | void * | ptr | ) |
Free an allocated memory block.
- Parameters
-
ptr Pointer to an previously allocated memory block.
| void * realloc | ( | void * | ptr, |
| size_t | size | ||
| ) |
Change the size of an allocated memory block The contents will be unchanged in the range from the start of the region up to the minimum of the old and new sizes. If the new size is larger than the old size, the added memory will not be initialized.
- Parameters
-
ptr Pointer to an previously allocated memory block. If nullptr, then the call is equivalent to malloc().size New size of the memory block. If equal to zero, then the call is equivalent to free
- Returns
- Pointer to new memory block or
nullptron error
Allocate memory for an array of elements The memory is set to zero.
- Parameters
-
nmemb Number of elements size Size of an element in bytes
- Returns
- pointer to the allocated memory or
nullptrif the request fails
Variable Documentation
| cache_aligned bool in_use = false |
Concurrent access is not allowed Use assertions to detect bugs.
|
static |
Reserved memory size as power of 2.
|
static |
(Resulting) reserved memory size
|
static |
Reserved memory (will be statically allocated in bss)
|
static |
Instantiate a Buddy allocator using the custom reserve function.