#include <libpmempool.h> int pmempool_feature_query(const char *path, enum pmempool_feature feature, unsigned flags); int pmempool_feature_enable(const char *path, enum pmempool_feature feature, unsigned flags); int pmempool_feature_disable(const char *path, enum pmempool_feature feature, unsigned flags);
The feature argument accepts following values:
- PMEMPOOL_FEAT_SINGLEHDR - only the first part in each replica contains the pool part internal metadata. This value can be used only with pmempool_feature_query(). It can not be enabled or disabled. For details see poolset(5).
- PMEMPOOL_FEAT_CKSUM_2K - only the first 2KiB of pool part internal metadata is checksummed. Other features may depend on this one to store additional metadata in otherwise unused second 2KiB part of a header. When PMEMPOOL_FEAT_CKSUM_2K is disabled whole 4KiB is checksummed.
- PMEMPOOL_FEAT_SHUTDOWN_STATE - enables additional check performed during pool open which verifies pool consistency in the presence of dirty shutdown. PMEMPOOL_FEAT_CKSUM_2K has to be enabled prior to PMEMPOOL_FEAT_SHUTDOWN_STATE otherwise enabling PMEMPOOL_FEAT_SHUTDOWN_STATE will fail.
- PMEMPOOL_FEAT_CHECK_BAD_BLOCKS - enables checking bad blocks performed during opening a pool and fixing bad blocks performed by pmempool-sync during syncing a pool. For details see pmempool-feature(1).
The pmempool_feature_query() function checks state of feature in the pool set pointed by path.
The pmempool_feature_enable() function enables feature in the pool set pointed by path.
The pmempool_feature_disable() function disables feature in the pool set pointed by path.
Poolsets with features not defined in this document (e.g. enabled by the newer software version) are not supported.
pmempool_feature_query(), pmempool_feature_enable() and pmempool_feature_disable() are not fail safe.
On success, pmempool_feature_query() returns 0 if feature is disabled or 1 if it is enabled. On error, it returns -1 and sets errno accordingly.
On success, pmempool_feature_enable() returns 0. On error, it returns -1 and sets errno accordingly.
On success, pmempool_feature_disable() returns 0. On error, it returns -1 and sets errno accordingly.
If path points poolset with remote replica errno is set to EINVAL and function returns -1.
If non zero flags are provided errno is set to EINVAL and function returns -1.
poolset(5) and <https://pmem.io>
libpmempool(7), pmemblk_ctl_get(3), pmemlog_ctl_get(3), pmemobj_ctl_get(3).
The man pages pmempool_feature_disable(3) and pmempool_feature_enable(3) are aliases of pmempool_feature_query(3).