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 in the memory location referenced by the argument
addr. 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
(e.g., anonymous), 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.
While 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.