diff --git a/libraries/liblmdb/lmdb.h b/libraries/liblmdb/lmdb.h index 736d190..f71df3c 100644 --- a/libraries/liblmdb/lmdb.h +++ b/libraries/liblmdb/lmdb.h @@ -819,6 +819,18 @@ int mdb_env_get_fd(MDB_env *env, mdb_filehandle_t *fd); */ int mdb_env_set_mapsize(MDB_env *env, size_t size); + /** @brief Get the current mmap pointer + * + * @param[in] env An environment handle returned by #mdb_env_create() + * @param[out] The address of the pointer to store mmap prt + * @return A non-zero error value on failure and 0 on success. Some possible + * errors are: + * + */ +int mdb_env_get_mmap_ptr(MDB_env *env, char **mmap_ptr); + /** @brief Set the maximum number of threads/reader slots for the environment. * * This defines the number of slots in the lock table that is used to track readers in the diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index 213842a..33c05c5 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -3932,6 +3932,16 @@ mdb_env_set_mapsize(MDB_env *env, size_t size) } int ESECT +mdb_env_get_mmap_ptr(MDB_env *env, char **arg) +{ + if (!env || !arg) + return EINVAL; + + *arg = env->me_map; + return MDB_SUCCESS; +} + +int ESECT mdb_env_set_maxdbs(MDB_env *env, MDB_dbi dbs) { if (env->me_map)