From 4543dac58e9b6c92e73dfc53b5a846cdc32d9172 Mon Sep 17 00:00:00 2001 From: Petr Rockai Date: Wed, 17 Nov 2010 20:11:27 +0000 Subject: [PATCH] Add the macro and specific 'get' functions for pvsegs. Signed-off-by: Dave Wysochanski Reviewed-by: Petr Rockai --- lib/report/properties.c | 14 ++++++++++++-- lib/report/properties.h | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/report/properties.c b/lib/report/properties.c index a588968d6..b93f419b2 100644 --- a/lib/report/properties.c +++ b/lib/report/properties.c @@ -36,6 +36,8 @@ static int _ ## NAME ## _get (const void *obj, struct lvm_property_type *prop) \ GET_NUM_PROPERTY_FN(NAME, VALUE, logical_volume, lv) #define GET_LVSEG_NUM_PROPERTY_FN(NAME, VALUE) \ GET_NUM_PROPERTY_FN(NAME, VALUE, lv_segment, lvseg) +#define GET_PVSEG_NUM_PROPERTY_FN(NAME, VALUE) \ + GET_NUM_PROPERTY_FN(NAME, VALUE, pv_segment, pvseg) #define SET_NUM_PROPERTY_FN(NAME, SETFN, TYPE, VAR) \ static int _ ## NAME ## _set (void *obj, struct lvm_property_type *prop) \ @@ -68,6 +70,8 @@ static int _ ## NAME ## _get (const void *obj, struct lvm_property_type *prop) \ GET_STR_PROPERTY_FN(NAME, VALUE, logical_volume, lv) #define GET_LVSEG_STR_PROPERTY_FN(NAME, VALUE) \ GET_STR_PROPERTY_FN(NAME, VALUE, lv_segment, lvseg) +#define GET_PVSEG_STR_PROPERTY_FN(NAME, VALUE) \ + GET_STR_PROPERTY_FN(NAME, VALUE, pv_segment, pvseg) static int _not_implemented_get(const void *obj, struct lvm_property_type *prop) { @@ -237,9 +241,9 @@ GET_LVSEG_STR_PROPERTY_FN(seg_tags, lvseg_tags_dup(lvseg)) /* PVSEG */ -#define _pvseg_start_get _not_implemented_get +GET_PVSEG_NUM_PROPERTY_FN(pvseg_start, pvseg->pe) #define _pvseg_start_set _not_implemented_set -#define _pvseg_size_get _not_implemented_get +GET_PVSEG_NUM_PROPERTY_FN(pvseg_size, pvseg->len) #define _pvseg_size_set _not_implemented_set @@ -340,6 +344,12 @@ int vg_get_property(const struct volume_group *vg, return _get_property(vg, prop, VGS); } +int pvseg_get_property(const struct pv_segment *pvseg, + struct lvm_property_type *prop) +{ + return _get_property(pvseg, prop, PVSEGS); +} + int pv_get_property(const struct physical_volume *pv, struct lvm_property_type *prop) { diff --git a/lib/report/properties.h b/lib/report/properties.h index 381cdc6e9..f363362c7 100644 --- a/lib/report/properties.h +++ b/lib/report/properties.h @@ -39,6 +39,8 @@ int lv_get_property(const struct logical_volume *lv, struct lvm_property_type *prop); int vg_get_property(const struct volume_group *vg, struct lvm_property_type *prop); +int pvseg_get_property(const struct pv_segment *pvseg, + struct lvm_property_type *prop); int pv_get_property(const struct physical_volume *pv, struct lvm_property_type *prop); int lv_set_property(struct logical_volume *lv, -- 2.43.5