Apache Portable Runtime
Data Structures | Macros | Typedefs | Functions
MMAP (Memory Map) Routines

Data Structures

struct  apr_mmap_t
 

Macros

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

Typedefs

typedef struct apr_mmap_t apr_mmap_t
 

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)
 

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

#define APR_MMAP_THRESHOLD   1

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
apr_mmap_t

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.

Parameters
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_status_t apr_mmap_delete ( apr_mmap_t mm)

Remove a mmap'ed.

Parameters
mmThe mmap'ed file.
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_mmapThe structure to duplicate into.
old_mmapThe mmap to duplicate.
pThe pool to use for new_mmap.
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
addrThe pointer to the offset specified.
mmThe mmap'ed file.
offsetThe offset to move to.