[lvm-devel] LVM2/lib/report properties.c

Dave Wysochanski dwysocha at redhat.com
Fri Aug 20 14:45:55 UTC 2010


On Fri, 2010-08-20 at 15:49 +0200, Zdenek Kabelac wrote:
> Dne 20.8.2010 15:02, wysochanski at sourceware.org napsal(a):
> > CVSROOT:	/cvs/lvm2
> > Module name:	LVM2
> > Changes by:	wysochanski at sourceware.org	2010-08-20 13:02:39
> > 
> > Modified files:
> > 	lib/report     : properties.c 
> > 
> > Log message:
> > 	Define GET_NUM_PROPERTY_FN macro to simplify numeric property 'get' functions.
> > 
> > Patches:
> > http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/properties.c.diff?cvsroot=lvm2&r1=1.2&r2=1.3
> > 
> > --- LVM2/lib/report/properties.c	2010/08/20 12:45:09	1.2
> > +++ LVM2/lib/report/properties.c	2010/08/20 13:02:39	1.3
> > @@ -20,6 +20,15 @@
> >  #include "lvm-types.h"
> >  #include "metadata.h"
> >  
> > +#define GET_NUM_PROPERTY_FN(NAME, VALUE) \
> > +static int _ ## NAME ## _get (void *obj, struct lvm_property_type *prop) \
> > +{ \
> > +	struct volume_group *vg = (struct volume_group *)obj; \
> > +\
> > +	prop->v.n_val = VALUE; \
> > +	return 1; \
> > +}
> > +
> 
> 
> Is this going to be part of liblvm API - or it's only purpose is to be used
> through liblvm2api - in that case it would be better to have this code
> compiled as a part of liblvm2api library and not increasing size of liblvm ?
> 

I originally had properties.[ch] inside liblvm subdirectory, but then
reconsidered based on:
1) Longer term the goal is for tools to call the library.  As a result,
I try to put only what is absolutely necessary inside liblvm.
2) Based on the fact properties.c included lib/report/columns.h, it
seemed like extending the reporting infrastructure was better done
inside lib instead of liblvm

That said, I had not considered size implications - can you be more
specific as to your concerns there?  Is it something specific like
initrd, or a design concern?




More information about the lvm-devel mailing list