diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h index adfbb76bf..3bf8bd6ca 100644 --- a/libdm/libdevmapper.h +++ b/libdm/libdevmapper.h @@ -1661,6 +1661,7 @@ int dm_config_tree_find_bool(const struct dm_config_tree *cft, const char *path, int dm_config_find_bool(const struct dm_config_node *cn, const char *path, int fail); int dm_config_value_is_bool(const struct dm_config_value *v); +int dm_config_get_int(const struct dm_config_node *cn, const char *path, int *result); int dm_config_get_uint32(const struct dm_config_node *cn, const char *path, uint32_t *result); int dm_config_get_uint64(const struct dm_config_node *cn, const char *path, uint64_t *result); int dm_config_get_str(const struct dm_config_node *cn, const char *path, const char **result); diff --git a/libdm/libdm-config.c b/libdm/libdm-config.c index ea1af2f90..32976217c 100644 --- a/libdm/libdm-config.c +++ b/libdm/libdm-config.c @@ -1047,6 +1047,20 @@ int dm_config_tree_find_bool(const struct dm_config_tree *cft, const char *path, /************************************/ +int dm_config_get_int(const struct dm_config_node *cn, const char *path, + int *result) +{ + const struct dm_config_node *n; + + n = _find_config_node(cn, path); + + if (!n || !n->v || n->v->type != DM_CFG_INT) + return 0; + + if (result) + *result = n->v->v.i; + return 1; +} int dm_config_get_uint32(const struct dm_config_node *cn, const char *path, uint32_t *result)