Pyrogenesis  trunk
Functions
page_aligned.h File Reference
#include "lib/posix/posix_mman.h"
Include dependency graph for page_aligned.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

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 unaligned_size)
 allocate memory aligned to the system page size. More...
 
void page_aligned_free (void *p, size_t unaligned_size)
 free a previously allocated page-aligned region. More...
 

Function Documentation

◆ mem_Commit()

Status mem_Commit ( u8 p,
size_t  size,
int  prot 
)

◆ mem_Decommit()

Status mem_Decommit ( u8 p,
size_t  size 
)

◆ mem_Protect()

Status mem_Protect ( u8 p,
size_t  size,
int  prot 
)

◆ mem_Release()

Status mem_Release ( u8 p,
size_t  size 
)

◆ mem_Reserve()

Status mem_Reserve ( size_t  size,
u8 **  pp 
)

◆ page_aligned_alloc()

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.

Parameters
unaligned_sizeminimum size [bytes] to allocate.
Returns
page-aligned and -padded memory or 0 on error / out of memory.

◆ page_aligned_free()

void page_aligned_free ( void *  p,
size_t  unaligned_size 
)

free a previously allocated page-aligned region.

Parameters
pExact value returned from page_aligned_alloc
unaligned_sizeExact value passed to page_aligned_alloc