MMAP (Memory Map) Routines
Collaboration diagram for MMAP (Memory Map) Routines:

Data Structures

struct  apr_mmap_t


#define APR_MMAP_READ   1
#define APR_MMAP_WRITE   2
#define APR_MMAP_LIMIT   (4*1024*1024)
#define APR_MMAP_CANDIDATE(filelength)    ((filelength >= APR_MMAP_THRESHOLD) && (filelength < APR_MMAP_LIMIT))


typedef struct apr_mmap_t apr_mmap_t


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)

Detailed Description

Macro Definition Documentation


#define APR_MMAP_CANDIDATE (   filelength)     ((filelength >= APR_MMAP_THRESHOLD) && (filelength < APR_MMAP_LIMIT))

Can this file be MMaped


#define APR_MMAP_LIMIT   (4*1024*1024)

Maximum size of MMap region


#define APR_MMAP_READ   1

MMap opened for reading



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   2

MMap opened for writing

Typedef Documentation

◆ apr_mmap_t

typedef struct apr_mmap_t apr_mmap_t
See also

Function Documentation

◆ apr_mmap_create()

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.

newmmapThe newly created mmap'ed file.
fileThe file to turn into an mmap.
offsetThe offset into the file to start the data pointer at.
sizeThe size of the file
flagbit-wise or of:
         APR_MMAP_READ       MMap opened for reading
         APR_MMAP_WRITE      MMap opened for writing
cntxtThe pool to use when creating the mmap.

◆ apr_mmap_delete()

apr_status_t apr_mmap_delete ( apr_mmap_t mm)

Remove a mmap'ed.

mmThe mmap'ed file.

◆ apr_mmap_dup()

apr_status_t apr_mmap_dup ( apr_mmap_t **  new_mmap,
apr_mmap_t old_mmap,
apr_pool_t p 

Duplicate the specified MMAP.

new_mmapThe structure to duplicate into.
old_mmapThe mmap to duplicate.
pThe pool to use for new_mmap.

◆ apr_mmap_offset()

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.

addrThe pointer to the offset specified.
mmThe mmap'ed file.
offsetThe offset to move to.