Modules | |
Memory protection flags | |
Memory page size directives | |
These defines can be used instead of explicit calls to port_vmem_page_sizes() . | |
Typedefs | |
typedef port_vmem_t | port_vmem_t |
Virtual memory block descriptor. | |
Functions | |
apr_status_t | port_vmem_reserve (port_vmem_t **block, void **address, size_t amount, unsigned int protectionMode, size_t pageSize, apr_pool_t *pool) |
Reserves a continuous memory region in the virtual address space of the calling process. | |
apr_status_t | port_vmem_commit (void **address, size_t amount, port_vmem_t *block) |
Commits (a part of) the previously reserved memory region. | |
apr_status_t | port_vmem_decommit (void *address, size_t amount, port_vmem_t *block) |
Decommits the specified region of committed memory. | |
apr_status_t | port_vmem_release (port_vmem_t *block) |
Releases previously reserved virtual memory region as a whole. | |
size_t * | port_vmem_page_sizes () |
Returns a zero-terminated array of supported memory page sizes. | |
size_t | port_vmem_used_size () |
Returns the amount of currently used memory in bytes or 0 if this value could not be calculated. | |
size_t | port_vmem_committed_size () |
Returns the amount of committed memory in bytes or 0 if this value could not be calculated. | |
size_t | port_vmem_reserved_size () |
Returns the amount of reserved memory in bytes or 0 if this value could not be calculated. | |
size_t | port_vmem_max_size () |
Returns the maximum amount of memory which could be reserved in bytes or 0 if this value could not be calculated. | |
apr_status_t | port_vmem_allocate (void **addr, size_t size, unsigned int mode) |
Allocate memory with default page size. | |
apr_status_t | port_vmem_free (void *addr, size_t size) |
Releases previously reserved virtual memory region as a whole. |
typedef struct port_vmem_t port_vmem_t |
Virtual memory block descriptor.
This is an incomplete type, the run-time instance should be obtained via port_vmem_reserve() call
apr_status_t port_vmem_reserve | ( | port_vmem_t ** | block, | |
void ** | address, | |||
size_t | amount, | |||
unsigned int | protectionMode, | |||
size_t | pageSize, | |||
apr_pool_t * | pool | |||
) |
Reserves a continuous memory region in the virtual address space of the calling process.
[out] | block | - descriptor for the reserved memory, required for further operations with the memory |
[in,out] | address | - desired starting address of the region to allocate. If NULL , the system determines the appropriate location.On success, the actual allocated address is returned |
amount | - the size of the region in bytes. For large pages, the size must be multiply of page size | |
protectionMode | - the bit mask of PORT_VMEM_MODE_* flags | |
pageSize | - the desired size of the memory page; should contain PORT_VMEM_PAGESIZE_DEFAULT , PORT_VMEM_PAGESIZE_LARGE or the actual size in bytes | |
pool | - the auxiliary pool to allocate the descriptor data, etc |
APR_SUCCESS
if OK; otherwise, an error code. apr_status_t port_vmem_commit | ( | void ** | address, | |
size_t | amount, | |||
port_vmem_t * | block | |||
) |
Commits (a part of) the previously reserved memory region.
The allocated memory is initialized to zero.
[in,out] | address | - the starting address of the region to commit; the returned value may differ due to page alignment |
amount | - the size of the region in bytes | |
block | - the descriptor to the reserved virtual memory |
APR_SUCCESS
if OK; otherwise, an error code. apr_status_t port_vmem_decommit | ( | void * | address, | |
size_t | amount, | |||
port_vmem_t * | block | |||
) |
Decommits the specified region of committed memory.
It is safe to decommit a reserved (but not committed) region.
address | - the starting address of the region to decommit | |
amount | - the size of the region in bytes | |
block | - the memory region descriptor |
APR_SUCCESS
if OK; otherwise, an error code. apr_status_t port_vmem_release | ( | port_vmem_t * | block | ) |
Releases previously reserved virtual memory region as a whole.
If the region was committed, the function first decommits it.
block | - the memory region descriptor |
APR_SUCCESS
if OK; otherwise, an error code. size_t* port_vmem_page_sizes | ( | ) |
Returns a zero-terminated array of supported memory page sizes.
The first element refers to the system default size and is guaranteed to be non-zero. Subsequent elements (if any) provide large page sizes.
size_t port_vmem_used_size | ( | ) |
Returns the amount of currently used memory in bytes or 0 if this value could not be calculated.
size_t port_vmem_committed_size | ( | ) |
Returns the amount of committed memory in bytes or 0 if this value could not be calculated.
size_t port_vmem_reserved_size | ( | ) |
Returns the amount of reserved memory in bytes or 0 if this value could not be calculated.
size_t port_vmem_max_size | ( | ) |
Returns the maximum amount of memory which could be reserved in bytes or 0 if this value could not be calculated.
apr_status_t port_vmem_allocate | ( | void ** | addr, | |
size_t | size, | |||
unsigned int | mode | |||
) |
Allocate memory with default page size.
[in,out] | addr | - desired starting address of the region to allocate. If NULL , the system determines the appropriate location.On success, the actual allocated address is returned |
size | - the size of the region in bytes. For large pages, the size must be multiply of page size | |
mode | - the bit mask of PORT_VMEM_MODE_* flags |
apr_status_t port_vmem_free | ( | void * | addr, | |
size_t | size | |||
) |
Releases previously reserved virtual memory region as a whole.
If the region was committed, the function first decommits it.
addr | - the memory region address | |
size | - size of the allocated memory |
APR_SUCCESS
if OK; otherwise, an error code.
Genereated on Tue Mar 11 19:25:42 2008 by Doxygen.
(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.