2001-11-21 12:20:05 +03:00
/*
2004-03-30 23:35:44 +04:00
* Copyright ( C ) 2001 - 2004 Sistina Software , Inc . All rights reserved .
2007-08-21 00:55:30 +04:00
* Copyright ( C ) 2004 - 2007 Red Hat , Inc . All rights reserved .
2001-11-21 12:20:05 +03:00
*
2004-03-30 23:35:44 +04:00
* 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
2007-08-21 00:55:30 +04:00
* of the GNU Lesser General Public License v .2 .1 .
2004-03-30 23:35:44 +04:00
*
2007-08-21 00:55:30 +04:00
* You should have received a copy of the GNU Lesser General Public License
2004-03-30 23:35:44 +04:00
* along with this program ; if not , write to the Free Software Foundation ,
2016-01-21 13:49:46 +03:00
* Inc . , 51 Franklin Street , Fifth Floor , Boston , MA 02110 - 1301 USA
2001-11-21 12:20:05 +03:00
*/
# ifndef _LVM_FORMAT_TEXT_H
# define _LVM_FORMAT_TEXT_H
2018-05-14 12:30:20 +03:00
# include "lib/metadata/metadata.h"
2002-11-18 17:04:08 +03:00
2008-02-06 18:47:28 +03:00
# define FMT_TEXT_NAME "lvm2"
# define FMT_TEXT_ALIAS "text"
# define FMT_TEXT_ORPHAN_VG_NAME ORPHAN_VG_NAME(FMT_TEXT_NAME)
2011-02-21 15:05:49 +03:00
# define FMT_TEXT_MAX_MDAS_PER_PV 2
2008-02-06 18:47:28 +03:00
2002-01-07 12:05:31 +03:00
/*
2002-02-08 14:58:18 +03:00
* Archives a vg config . ' retain_days ' is the minimum number of
* days that an archive file must be held for . ' min_archives ' is
* the minimum number of archives required to be kept for each
* volume group .
2002-01-07 12:05:31 +03:00
*/
2002-02-08 14:58:18 +03:00
int archive_vg ( struct volume_group * vg ,
const char * dir ,
2002-11-18 17:04:08 +03:00
const char * desc , uint32_t retain_days , uint32_t min_archive ) ;
2001-12-17 22:46:10 +03:00
2002-02-11 14:43:17 +03:00
/*
* Displays a list of vg backups in a particular archive directory .
*/
2003-09-15 19:03:22 +04:00
int archive_list ( struct cmd_context * cmd , const char * dir , const char * vgname ) ;
2007-06-09 02:38:48 +04:00
int archive_list_file ( struct cmd_context * cmd , const char * file ) ;
2003-09-15 19:03:22 +04:00
int backup_list ( struct cmd_context * cmd , const char * dir , const char * vgname ) ;
2001-11-21 12:20:05 +03:00
2002-01-07 12:05:31 +03:00
/*
* The text format can read and write a volume_group to a file .
*/
2011-03-11 17:45:17 +03:00
struct text_context {
const char * path_live ; /* Path to file holding live metadata */
const char * path_edit ; /* Path to file holding edited metadata */
const char * desc ; /* Description placed inside file */
} ;
2002-04-24 22:20:51 +04:00
struct format_type * create_text_format ( struct cmd_context * cmd ) ;
2002-01-07 12:05:31 +03:00
2002-12-20 02:25:55 +03:00
struct labeller * text_labeller_create ( const struct format_type * fmt ) ;
2002-11-18 17:04:08 +03:00
int pvhdr_read ( struct device * dev , char * buf ) ;
2008-11-04 01:14:30 +03:00
int add_da ( struct dm_pool * mem , struct dm_list * das ,
2002-11-18 17:04:08 +03:00
uint64_t start , uint64_t size ) ;
2008-11-04 01:14:30 +03:00
void del_das ( struct dm_list * das ) ;
2013-05-28 14:37:22 +04:00
int add_ba ( struct dm_pool * mem , struct dm_list * eas ,
2013-02-14 18:35:57 +04:00
uint64_t start , uint64_t size ) ;
2016-12-10 01:10:00 +03:00
void del_bas ( struct dm_list * bas ) ;
2008-11-04 01:14:30 +03:00
int add_mda ( const struct format_type * fmt , struct dm_pool * mem , struct dm_list * mdas ,
2019-02-05 22:24:23 +03:00
struct device * dev , uint64_t start , uint64_t size , unsigned ignored ,
struct metadata_area * * mda_new ) ;
2008-11-04 01:14:30 +03:00
void del_mdas ( struct dm_list * mdas ) ;
2002-11-18 17:04:08 +03:00
2012-02-10 05:28:27 +04:00
/* On disk */
struct disk_locn {
uint64_t offset ; /* Offset in bytes to start sector */
uint64_t size ; /* Bytes */
} __attribute__ ( ( packed ) ) ;
/* Data areas (holding PEs) */
struct data_area_list {
struct dm_list list ;
struct disk_locn disk_locn ;
} ;
2019-02-06 21:32:26 +03:00
int text_wipe_outdated_pv_mda ( struct cmd_context * cmd , struct device * dev ,
struct metadata_area * mda ) ;
2019-10-08 22:36:55 +03:00
void preserve_text_fidtc ( struct volume_group * vg ) ;
void free_text_fidtc ( struct volume_group * vg ) ;
2001-11-21 12:20:05 +03:00
# endif