2001-11-21 12:20:05 +03:00
/*
* Copyright ( C ) 2001 Sistina Software ( UK ) Limited .
*
* This file is released under the LGPL .
*/
# ifndef _LVM_TEXT_IMPORT_EXPORT_H
# define _LVM_TEXT_IMPORT_EXPORT_H
2001-12-11 15:16:58 +03:00
# include "config.h"
2001-12-20 14:52:54 +03:00
# include "lvm-types.h"
# include "metadata.h"
2002-11-18 17:04:08 +03:00
# include "pool.h"
2001-12-20 14:52:54 +03:00
# include <stdio.h>
2001-12-11 15:16:58 +03:00
2002-07-02 22:47:43 +04:00
/*
2002-07-11 18:09:26 +04:00
* Constants to identify files this code can parse .
2002-07-02 22:47:43 +04:00
*/
# define CONTENTS_FIELD "contents"
# define CONTENTS_VALUE "Text Format Volume Group"
# define FORMAT_VERSION_FIELD "version"
# define FORMAT_VERSION_VALUE 1
/*
* VGs , PVs and LVs all have status bitsets , we gather together
* common code for reading and writing them .
*/
2001-12-11 15:16:58 +03:00
enum {
VG_FLAGS ,
PV_FLAGS ,
LV_FLAGS
} ;
2002-11-18 17:04:08 +03:00
struct text_vg_version_ops {
int ( * check_version ) ( struct config_tree * cf ) ;
struct volume_group * ( * read_vg ) ( struct format_instance * fid ,
struct config_tree * cf ) ;
void ( * read_desc ) ( struct pool * mem , struct config_tree * cf ,
time_t * when , char * * desc ) ;
} ;
struct text_vg_version_ops * text_vg_vsn1_init ( void ) ;
2001-12-11 15:16:58 +03:00
int print_flags ( uint32_t status , int type , char * buffer , size_t size ) ;
int read_flags ( uint32_t * status , int type , struct config_value * cv ) ;
2004-03-08 20:19:15 +03:00
int print_tags ( struct list * tags , char * buffer , size_t size ) ;
int read_tags ( struct pool * mem , struct list * tags , struct config_value * cv ) ;
2002-11-18 17:04:08 +03:00
int text_vg_export_file ( struct volume_group * vg , const char * desc , FILE * fp ) ;
int text_vg_export_raw ( struct volume_group * vg , const char * desc , char * buf ,
uint32_t size ) ;
struct volume_group * text_vg_import_file ( struct format_instance * fid ,
const char * file ,
time_t * when , char * * desc ) ;
struct volume_group * text_vg_import_fd ( struct format_instance * fid ,
const char * file ,
2003-07-05 02:34:56 +04:00
struct device * dev ,
2002-11-18 17:04:08 +03:00
off_t offset , uint32_t size ,
off_t offset2 , uint32_t size2 ,
checksum_fn_t checksum_fn ,
uint32_t checksum ,
time_t * when , char * * desc ) ;
2001-11-21 12:20:05 +03:00
# endif