MMAP (Memory Map) Routines
[Apache Portability Runtime library]

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 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, int transfer_ownership)
apr_status_t apr_mmap_setaside (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)

Define 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

typedef struct apr_mmap_t apr_mmap_t

See also:

Function Documentation

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.

newmmap The newly created mmap'ed file.
file The file 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_delete ( apr_mmap_t mm  ) 

Remove a mmap'ed.

mm The mmap'ed file.

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

Duplicate the specified MMAP.

new_mmap The structure to duplicate into.
old_mmap The mmap to duplicate.
p The pool to use for new_mmap.
transfer_ownership DEPRECATED: this param is now ignored and should be removed prior to APR 1.0

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.

addr The pointer to the offset specified.
mm The mmap'ed file.
offset The offset to move to.

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

Transfer the specified MMAP to a different pool

new_mmap The structure to duplicate into.
old_mmap The file to transfer.
p The pool to use for new_mmap.
Just use apr_mmap_dup(). The transfer_ownership flag will go away soon anyway.

Generated on Mon Nov 26 11:47:27 2007 for Apache Portable Runtime by  doxygen 1.5.2