*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> mpool (3)              
Title
Content
Arch
Section
 

mpool(3)

Contents


NAME    [Toc]    [Back]

       mpool,   MPOOL,   mpool_open,   mpool_filter,   mpool_new,
       mpool_get, mpool_put,  mpool_sync,  mpool_close  -  shared
       memory buffer pool

SYNOPSIS    [Toc]    [Back]

       #include <db.h> #include <mpool.h>

       MPOOL * mpool_open(
               DBT *key,
               int fd,
               pgno_t pagesize,
               pgno_t maxcache ); void mpool_filter(
               MPOOL *mp,
               void (*pgin)(void *, pgno_t, void *),
               void (*pgout)(void *, pgno_t, void *),
               void *pgcookie ); void * mpool_new(
               MPOOL *mp,
               pgno_t *pgnoaddr ); void * mpool_get(
               MPOOL *mp,
               pgno_t pgno,
               u_int flags ); int mpool_put(
               MPOOL *mp,
               void *pgaddr,
               u_int flags ); int mpool_sync(
               MPOOL *mp ); int mpool_close(
               MPOOL *mp );

DESCRIPTION    [Toc]    [Back]

       The mpool routines are the library interface that provides
       page-oriented buffer management of files. The buffers  may
       be shared between processes.

       The  function mpool_open() initializes a memory pool.  The
       key argument is the byte string used to negotiate  between
       multiple  processes  wishing to share buffers. If the file
       buffers are mapped in shared memory, all  processes  using
       the  same key will share the buffers.  If key is NULL, the
       buffers are mapped into private memory. The fd argument is
       a  file  descriptor for the underlying file, which must be
       seekable. If key is non-NULL and matches  a  file  already
       being mapped, the fd argument is ignored.

       The  pagesize argument is the size, in bytes, of the pages
       into which the file is broken up. The maxcache argument is
       the  maximum  number  of pages from the underlying file to
       cache at any one point in time. This value is not relative
       to  the  number  of processes that share a file's buffers,
       but will be the largest value specified by any of the processes
 sharing the file.

       The  function mpool_filter() is intended to make transparent
 input and output processing of the pages possible.  If
       the  pgin  function is specified, it is called each time a
       buffer is read into the memory pool from the backing file.
       If the pgout function is specified, it is called each time
       a buffer is written into the backing file. Both  functions
       are  called with the pgcookie pointer, the page number and
       a pointer to the page to being read or written.

       The function mpool_new() takes an  MPOOL  pointer  and  an
       address  as  arguments.  If a new page can be allocated, a
       pointer to the page is returned and  the  page  number  is
       stored  into  the  pgnoaddr  address.  Otherwise,  NULL is
       returned and errno is set.

       The function mpool_get() takes a MPOOL pointer and a  page
       number  as arguments. If the page exists, a pointer to the
       page is returned.  Otherwise, NULL is returned  and  errno
       is set. The flags parameter is not currently used.

       The  function  mpool_put()  unpins  the page referenced by
       pgaddr.  Pgaddr must be an address previously returned  by
       mpool_get()  or mpool_new(). The option value is specified
       by ORing any of the following values: The  page  has  been
       modified and needs to be written to the backing file.

       The function mpool_put() returns 0 on success and -1 if an
       error occurs.

       The function mpool_sync() writes all modified pages  associated
  with  the  MPOOL  pointer  to the backing file. It
       returns 0 on success and -1 if an error occurs.

       The function mpool_close() frees up any  allocated  memory
       associated with the memory pool cookie. Modified pages are
       not written to the backing file. The function returns 0 on
       success and -1 if an error occurs.

ERRORS    [Toc]    [Back]

       The  mpool_open()  function may fail and set errno for any
       of the errors specified for the library routine malloc(3).

       The  mpool_get()  function  may fail and set errno for the
       following: The requested record does not exist.

       The mpool_new() and mpool_get() functions may fail and set
       errno for any of the errors specified for the library routines
 read(2), write(2), and malloc(3).

       The mpool_sync() function may fail and set errno  for  any
       of  the errors specified for the library routine write(2).

       The mpool_close() function may fail and set errno for  any
       of the errors specified for the library routine free(3).

SEE ALSO    [Toc]    [Back]

      
      
       dbopen(3), btree(3), hash(3), recno(3)



                                                         mpool(3)
[ Back ]
 Similar pages
Name OS Title
shm_open FreeBSD open or create a shared memory object shm_unlink -- remove a shared memory object
dma32_pool_size HP-UX the amount of memory to reserve for the 32-bit DMA pool
esballoc Tru64 STREAMS: Allocates a message block with a shared buffer
shmget HP-UX get shared memory segment
shmat OpenBSD map/unmap shared memory
shmctl FreeBSD shared memory control
shmdt NetBSD map/unmap shared memory
shmctl Linux shared memory control
shmget NetBSD get shared memory segment
shmat HP-UX shared memory operations
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service