Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

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


Data Structures

struct  apr_mmap_t

Defines

#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 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, 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

#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:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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

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


Generated on Thu Dec 25 11:41:05 2003 for Apache Portable Runtime by doxygen1.2.18