Provided by: manpages-es_1.55-10_all bug

NOMBRE

       mpool - deposito de buffers de memoria compartida

SINOPSIS

       #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);

DESCRIPCI'ON

       Mpool  es  la interfaz de biblioteca destinada a proporcionar un manejo
       de buffers de fichero orientado a  paginas.   Los  buffers  pueden  ser
       compartidos entre procesos.

       La  funcion mpool_open inicializa un deposito de memoria.  El argumento
       key es la cadena de bytes usada para negociar entre varios procesos que
       desean  compartir  buffers.   Si  los  buffers  de fichero se asocian a
       memoria  compartida,  todos  los  procesos  que  usen  la  misma  clave
       compartiran  los buffers.  Si key es NULL, los buffers se asocian a una
       memoria privada.  El argumento fd es un descriptor de fichero  para  el
       fichero subyacente, que debe soportar el posicionamiento del puntero de
       lectura/escritura (es decir, las busquedas).   Si  key  no  es  NULL  y
       coincide  con  un  fichero  que  ya  esta  asociado, el argumento fd se
       ignorara.

       El argumento pagesize es el tamano, en bytes, de las paginas en las que
       se descompone el fichero.  El argumento maxcache es el numero maximo de
       paginas del fichero subyacente a colocar  en  cache  en  todo  momento.
       Esta  valor  no  es  relativo  al  numero de procesos que comparten los
       buffers de un fichero,  pero  sera  el  mayor  valor  especificado  por
       cualquiera de los procesos que compartan el fichero.

       La   funcion  mpool_filter  esta  destinada  a  hacer  transparente  el
       procesamiento de la entrada y la salida de las posibles paginas.  Si se
       especifica la funcion pgin, se llamara cada vez que se lea un buffer al
       deposito  de  memoria  procedente  del  fichero  de  respaldo.   Si  se
       especifica  la  funcion  pgout,  se  llamara  cada vez que un buffer se
       escriba en el fichero de respaldo.  Ambas funciones se  llaman  con  el
       puntero pgcookie, el numero de pagina y un puntero a la pagina a leer o
       escribir.

       La funcion mpool_new  toma  un  puntero  MPOOL  y  una  direccion  como
       argumentos.   Si  se  puede  asignar  una nueva pagina, se devolvera un
       puntero a la pagina y el numero de pagina se almacenara en la direccion
       pgnoaddr.   En caso contrario, se devolvera NULL y se asignara un valor
       a errno.

       La funcion mpool_get toma un puntero MPOOL y un numero de  pagina  como
       argumentos.  Si la pagina existe, devolvera un puntero a la pagina.  En
       caso contrario, devolvera NULL y se asignara  un  valor  a  errno.   El
       parametro de opcion no se usa actualmente.

       La  funcion  mpool_put  desprende  la  pagina  referenciada por pgaddr.
       Pgaddr debe ser una direccion  devuelta  previamente  por  mpool_get  o
       mpool_new.   El valor de opcion se especifica haciendo una operacion O-
       logica con cualquiera de los siguientes valores:

       MPOOL_DIRTY
              La pagina ha sido  modificada  y  necesita  ser  escrita  en  el
              fichero de respaldo.

       Mpool_put devuelve 0 en caso de exito y -1 si se produce un error.

       La  funcion  mpool_sync  escribe  en  el  fichero de respaldo todas las
       paginas  modificadas  asociadas  con  el  puntero  MPOOL.    Mpool_sync
       devuelve 0 en caso de exito y -1 si se produce un error.

       La  funcion mpool_close libera cualquier memoria reservada asociada con
       el deposito de memoria.  Las paginas modificadas no se escribiran en el
       fichero  de  respaldo.  Mpool_close devuelve 0 en caso de exito y -1 si
       se produce un error.

ERRORES

       La funcion mpool_open puede fallar y asignar a errno cualquiera de  los
       errores especificados para la rutina de biblioteca malloc(3).

       La  funcion  mpool_get  puede  fallar  y  asignar  a  errno  uno de los
       siguiente valores:

       [EINVAL]       El registro solicitado no exite.

       Las funciones mpool_new y mpool_get pueden fallar  y  asignar  a  errno
       cualquiera  de los errores especificados para las rutinas de biblioteca
       read(2), write(2) y malloc(3).

       La funcion mpool_sync puede fallar y asignar a errno cualquiera de  los
       errores especificados para la rutina de biblioteca write(2).

       La funcion mpool_close puede fallar y asignar a errno cualquiera de los
       errores especificados para la rutina de biblioteca free(3).

V'EASE TAMBI'EN

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