Pyrogenesis trunk
|
#include "precompiled.h"
#include "lib/allocators/dynarray.h"
#include "lib/alignment.h"
#include "lib/sysdep/vm.h"
#include <cstring>
#include <string>
Macros | |
#define | CHECK_DA(da) RETURN_STATUS_IF_ERR(validate_da(da)) |
Functions | |
static Status | validate_da (DynArray *da) |
Status | da_alloc (DynArray *da, size_t max_size) |
ready the DynArray object for use. More... | |
Status | da_free (DynArray *da) |
free all memory (address space + physical) that constitutes the given array. More... | |
Status | da_set_size (DynArray *da, size_t new_size) |
expand or shrink the array: changes the amount of currently committed (i.e. More... | |
Status | da_reserve (DynArray *da, size_t size) |
Make sure at least <size> bytes starting at da->pos are committed and ready for use. More... | |
Status | da_append (DynArray *da, const void *data, size_t size) |
"write" to array, i.e. More... | |
#define CHECK_DA | ( | da | ) | RETURN_STATUS_IF_ERR(validate_da(da)) |
"write" to array, i.e.
copy from the given buffer.
starts at offset DynArray.pos and advances this.
da | DynArray. |
data_src | source memory |
size | [bytes] to copy |
free all memory (address space + physical) that constitutes the given array.
use-after-free is impossible because the memory is unmapped.
da | DynArray* zeroed afterwards. |
Make sure at least <size> bytes starting at da->pos are committed and ready for use.
da | DynArray* |
size | Minimum amount to guarantee [bytes] |
expand or shrink the array: changes the amount of currently committed (i.e.
usable) memory pages.
da | DynArray. |
new_size | target size (rounded up to next page multiple). pages are added/removed until this is met. |