|
db_env_set_func_map
|
|
#include <db.h>
int
db_env_set_func_map(int (*func_map)(char *path,
size_t len, int is_region, int is_rdonly, void **addr));
Description
The Berkeley DB library requires the ability to map a file into memory and to
create shared memory regions (which may or may not be backed by files).
The func_map argument must conform to the following interface:
int map(char *path, size_t len,
int is_region, int is_rdonly, void **addr);
The path argument is the name of a file.
The is_region argument will be zero if the intention is to map
a file into shared memory. In this case, the map function must
map the first len bytes of the file into memory and return a
pointer to the mapped location into the memory location to which the
argument addr refers. The is_rdonly argument will be
non-zero if the file is considered read-only by the caller.
The is_region argument will be non-zero if the memory is
intended to be used as a shared memory region for synchronization
between Berkeley DB threads/processes. In this case, the returned memory may
be of any kind (for example, anonymous memory), but must be able to
support semaphores. In this case, the path argument may be
ignored (although future map calls using the same path
must return the same memory), and the is_rdonly argument will
always be zero.
The func_map function must return the value of errno on
failure and 0 on success.
The db_env_set_func_map interface affects the entire application, not a single
database or database environment.
Although the db_env_set_func_map interface may be used to configure Berkeley DB at any time
during the life of the application, it should normally be called before
making any calls to the db_env_create or db_create functions.
The db_env_set_func_map function returns a non-zero error value on failure and 0 on success.
Errors
The db_env_set_func_map function may fail and return a non-zero error for the following conditions:
- EINVAL
- An invalid flag value or parameter was specified.
The db_env_set_func_map function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
If a catastrophic error has occurred, the db_env_set_func_map function may fail and return
DB_RUNRECOVERY, in which case all subsequent Berkeley DB calls will fail
in the same way.
See Also
db_env_set_func_close,
db_env_set_func_dirfree,
db_env_set_func_dirlist,
db_env_set_func_exists,
db_env_set_func_free,
db_env_set_func_fsync,
db_env_set_func_ioinfo,
db_env_set_func_malloc,
db_env_set_func_map,
db_env_set_func_open,
db_env_set_func_read,
db_env_set_func_realloc,
db_env_set_func_seek,
db_env_set_func_sleep,
db_env_set_func_unlink,
db_env_set_func_unmap,
db_env_set_func_write,
and
db_env_set_func_yield.
Copyright Sleepycat Software
|