Apache Portable Runtime
Data Structures | Defines | Typedefs | Functions
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 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)

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:
newmmapThe newly created mmap'ed file.
fileThe file 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.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines