2010-08-20 16:44:58 +04:00
/*
* Copyright ( C ) 2010 Red Hat , Inc . All rights reserved .
*
* This file is part of LVM2 .
*
* This copyrighted material is made available to anyone wishing to use ,
* modify , copy , or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License v .2 .1 .
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program ; if not , write to the Free Software Foundation ,
* Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
# ifndef _LVM_PROPERTIES_H
# define _LVM_PROPERTIES_H
# include "libdevmapper.h"
# include "lvm-types.h"
# include "metadata.h"
2010-09-30 18:09:45 +04:00
# include "report.h"
2010-08-20 16:44:58 +04:00
struct lvm_property_type {
2012-02-27 15:45:05 +04:00
unsigned type ;
2010-10-21 18:49:43 +04:00
const char * id ;
unsigned is_settable : 1 ;
unsigned is_string : 1 ;
2010-10-25 18:08:32 +04:00
unsigned is_integer : 1 ;
2010-08-20 16:44:58 +04:00
union {
2010-11-17 22:50:15 +03:00
const char * string ;
2010-10-21 18:49:43 +04:00
uint64_t integer ;
} value ;
2010-09-30 18:09:45 +04:00
int ( * get ) ( const void * obj , struct lvm_property_type * prop ) ;
2010-08-20 16:44:58 +04:00
int ( * set ) ( void * obj , struct lvm_property_type * prop ) ;
} ;
2010-11-17 23:08:14 +03:00
int lvseg_get_property ( const struct lv_segment * lvseg ,
struct lvm_property_type * prop ) ;
2010-10-21 22:51:16 +04:00
int lv_get_property ( const struct logical_volume * lv ,
struct lvm_property_type * prop ) ;
2010-09-30 18:09:45 +04:00
int vg_get_property ( const struct volume_group * vg ,
struct lvm_property_type * prop ) ;
2010-11-17 23:11:27 +03:00
int pvseg_get_property ( const struct pv_segment * pvseg ,
struct lvm_property_type * prop ) ;
2010-09-30 18:09:45 +04:00
int pv_get_property ( const struct physical_volume * pv ,
struct lvm_property_type * prop ) ;
2010-11-17 22:15:10 +03:00
int lv_set_property ( struct logical_volume * lv ,
struct lvm_property_type * prop ) ;
int vg_set_property ( struct volume_group * vg ,
struct lvm_property_type * prop ) ;
int pv_set_property ( struct physical_volume * pv ,
struct lvm_property_type * prop ) ;
2010-08-20 16:44:58 +04:00
2013-04-17 10:29:21 +04:00
int lv_create_param_get_property ( const struct lvcreate_params * lvcp ,
struct lvm_property_type * prop ) ;
int lv_create_param_set_property ( struct lvcreate_params * lvcp ,
struct lvm_property_type * prop ) ;
2010-08-20 16:44:58 +04:00
# endif