db_env_set_func_map(int (*func_map)(char *path,
size_t len, int is_region, int is_rdonly, void **addr));
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 interface must return the value of errno on
failure and 0 on success.
The db_env_set_func_map method configures all operations performed by a process and
all of its threads of control, not operations confined to a single
Although the db_env_set_func_map interface may be called at any time during the
life of the application, it should normally be called before making
calls to the db_env_create or db_create methods.
The db_env_set_func_map method returns a non-zero error value on failure and 0 on success.
The db_env_set_func_map method may fail and return a non-zero error for the following conditions:
- An invalid flag value or parameter was specified.
The db_env_set_func_map method 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 method may fail and
in which case all subsequent Berkeley DB calls will fail in the same way.
Copyright Sleepycat Software