MMAP (Memory Map) Routines
Overview
// typedefs typedef struct apr_mmap_t apr_mmap_t; // structs struct apr_mmap_t; // global functions apr_status_t apr_mmap_create( apr_mmap_t** newmmap, apr_file_t* file, apr_off_t offset, apr_size_t size, apr_int32_t flag, apr_pool_t* cntxt ); apr_status_t apr_mmap_dup( apr_mmap_t** new_mmap, apr_mmap_t* old_mmap, apr_pool_t* p ); apr_status_t apr_mmap_delete(apr_mmap_t* mm); apr_status_t apr_mmap_offset( void** addr, apr_mmap_t* mm, apr_off_t offset ); // macros #define APR_MMAP_CANDIDATE(filelength) #define APR_MMAP_LIMIT #define APR_MMAP_READ #define APR_MMAP_THRESHOLD #define APR_MMAP_WRITE
Detailed Documentation
Typedefs
typedef struct apr_mmap_t apr_mmap_t
See also:
Global Functions
apr_status_t apr_mmap_create( apr_mmap_t** newmmap, apr_file_t* file, apr_off_t offset, apr_size_t size, apr_int32_t flag, apr_pool_t* cntxt )
Create a new mmap’ed file out of an existing APR file.
Parameters:
newmmap |
The newly created mmap’ed file. |
file |
The file to turn into an mmap. |
offset |
The offset into the file to start the data pointer at. |
size |
The size of the file |
flag |
bit-wise or of: APR_MMAP_READ MMap opened for reading
APR_MMAP_WRITE MMap opened for writing
|
cntxt |
The pool to use when creating the mmap. |
apr_status_t apr_mmap_dup( apr_mmap_t** new_mmap, apr_mmap_t* old_mmap, apr_pool_t* p )
Duplicate the specified MMAP.
Parameters:
new_mmap |
The structure to duplicate into. |
old_mmap |
The mmap to duplicate. |
p |
The pool to use for new_mmap. |
apr_status_t apr_mmap_delete(apr_mmap_t* mm)
Remove a mmap’ed.
Parameters:
mm |
The mmap’ed file. |
apr_status_t apr_mmap_offset( void** addr, apr_mmap_t* mm, apr_off_t offset )
Move the pointer into the mmap’ed file to the specified offset.
Parameters:
addr |
The pointer to the offset specified. |
mm |
The mmap’ed file. |
offset |
The offset to move to. |
Macros
#define APR_MMAP_CANDIDATE(filelength)
Can this file be MMaped
#define APR_MMAP_LIMIT
Maximum size of MMap region
#define APR_MMAP_READ
MMap opened for reading
#define APR_MMAP_THRESHOLD
Files have to be at least this big before they’re mmap()d. This is to deal with systems where the expense of doing an mmap() and an munmap() outweighs the benefit for small files. It shouldn’t be set lower than 1.
#define APR_MMAP_WRITE
MMap opened for writing