2002-12-12 20:55:49 +00:00
/*
2004-03-30 19:35:44 +00:00
* Copyright ( C ) 2002 - 2004 Sistina Software , Inc . All rights reserved .
2009-02-09 09:45:49 +00:00
* Copyright ( C ) 2004 - 2009 Red Hat , Inc . All rights reserved .
2002-12-12 20:55:49 +00:00
*
2004-03-30 19:35:44 +00:00
* This file is part of LVM2 .
2002-12-12 20:55:49 +00:00
*
2004-03-30 19:35:44 +00:00
* This copyrighted material is made available to anyone wishing to use ,
* modify , copy , or redistribute it subject to the terms and conditions
2007-08-20 20:55:30 +00:00
* of the GNU Lesser General Public License v .2 .1 .
2002-12-12 20:55:49 +00:00
*
2007-08-20 20:55:30 +00:00
* You should have received a copy of the GNU Lesser General Public License
2004-03-30 19:35:44 +00:00
* along with this program ; if not , write to the Free Software Foundation ,
* Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
2002-12-12 20:55:49 +00:00
*/
# ifndef _LVM_REPORT_H
# define _LVM_REPORT_H
2007-07-18 15:38:58 +00:00
# include "metadata-exported.h"
2013-07-29 19:07:11 +02:00
# include "label.h"
2014-07-02 09:45:53 +02:00
# include "activate.h"
2002-12-12 20:55:49 +00:00
2009-02-09 09:45:49 +00:00
typedef enum {
2013-09-18 01:09:15 +01:00
LVS = 1 ,
2014-07-02 09:45:53 +02:00
LVSINFO = 2 ,
PVS = 4 ,
VGS = 8 ,
SEGS = 16 ,
PVSEGS = 32 ,
LABEL = 64 ,
DEVTYPES = 128
2009-02-09 09:45:49 +00:00
} report_type_t ;
2002-12-12 20:55:49 +00:00
struct field ;
struct report_handle ;
typedef int ( * field_report_fn ) ( struct report_handle * dh , struct field * field ,
const void * data ) ;
void * report_init ( struct cmd_context * cmd , const char * format , const char * keys ,
report_type_t * report_type , const char * separator ,
2008-06-24 21:21:04 +00:00
int aligned , int buffered , int headings , int field_prefixes ,
2014-05-29 09:38:59 +02:00
int quoted , int columns_as_rows , const char * selection ) ;
2002-12-12 20:55:49 +00:00
void report_free ( void * handle ) ;
int report_object ( void * handle , struct volume_group * vg ,
struct logical_volume * lv , struct physical_volume * pv ,
2013-07-29 19:07:11 +02:00
struct lv_segment * seg , struct pv_segment * pvseg ,
2014-07-02 09:45:53 +02:00
struct lvinfo * lvinfo , struct label * label ) ;
2013-09-18 01:09:15 +01:00
int report_devtypes ( void * handle ) ;
2002-12-12 20:55:49 +00:00
int report_output ( void * handle ) ;
# endif