Pyrogenesis
13997
|
#include "precompiled.h"
#include "lib/allocators/page_aligned.h"
#include "lib/alignment.h"
#include "lib/sysdep/cpu.h"
Go to the source code of this file.
Macros | |
#define | MAP_ANONYMOUS MAP_ANON |
Functions | |
static Status | StatusFromMap (void *ret) |
Status | mem_Reserve (size_t size, u8 **pp) |
Status | mem_Release (u8 *p, size_t size) |
Status | mem_Commit (u8 *p, size_t size, int prot) |
Status | mem_Decommit (u8 *p, size_t size) |
Status | mem_Protect (u8 *p, size_t size, int prot) |
void * | page_aligned_alloc (size_t size) |
allocate memory aligned to the system page size. More... | |
void | page_aligned_free (void *p, size_t size) |
free a previously allocated page-aligned region. More... | |
Variables | |
static const int | mmap_flags = MAP_PRIVATE|MAP_ANONYMOUS |
#define MAP_ANONYMOUS MAP_ANON |
Definition at line 44 of file page_aligned.cpp.
Definition at line 65 of file page_aligned.cpp.
Definition at line 76 of file page_aligned.cpp.
Definition at line 83 of file page_aligned.cpp.
Definition at line 57 of file page_aligned.cpp.
Definition at line 49 of file page_aligned.cpp.
void* page_aligned_alloc | ( | size_t | unaligned_size | ) |
allocate memory aligned to the system page size.
this is useful for file_cache_alloc, which uses this allocator to get sector-aligned (hopefully; see sys_max_sector_size) IO buffers.
note that this allocator is stateless and very little error checking can be performed.
the memory is initially writable and you can use mprotect to set other access permissions if desired.
unaligned_size | minimum size [bytes] to allocate. |
Definition at line 95 of file page_aligned.cpp.
void page_aligned_free | ( | void * | p, |
size_t | unaligned_size | ||
) |
free a previously allocated page-aligned region.
p | Exact value returned from page_aligned_alloc |
unaligned_size | Exact value passed to page_aligned_alloc |
Definition at line 105 of file page_aligned.cpp.
|
inlinestatic |
Definition at line 32 of file page_aligned.cpp.
|
static |
Definition at line 47 of file page_aligned.cpp.