2001-09-25 12:49:28 +00:00
/*
2004-03-30 19:35:44 +00:00
* Copyright ( C ) 2001 - 2004 Sistina Software , Inc . All rights reserved .
* Copyright ( C ) 2004 Red Hat , Inc . All rights reserved .
2001-09-25 12:49:28 +00:00
*
2004-03-30 19:35:44 +00:00
* This file is part of LVM2 .
2001-09-25 12:49:28 +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
* of the GNU General Public License v .2 .
2001-09-25 12:49:28 +00:00
*
2004-03-30 19:35:44 +00:00
* You should have received a copy of the GNU 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
2001-09-25 12:49:28 +00:00
*/
2001-10-01 15:14:39 +00:00
# ifndef _LVM_TOOLLIB_H
# define _LVM_TOOLLIB_H
2001-09-25 12:49:28 +00:00
2002-02-11 20:50:53 +00:00
# include "metadata.h"
2001-10-05 21:39:30 +00:00
int autobackup_set ( void ) ;
2001-12-31 19:09:51 +00:00
int autobackup_init ( const char * backup_dir , int keep_days , int keep_number ,
int autobackup ) ;
2001-12-20 11:52:54 +00:00
int autobackup ( struct volume_group * vg ) ;
2001-09-25 12:49:28 +00:00
2002-11-18 14:04:08 +00:00
struct volume_group * recover_vg ( struct cmd_context * cmd , const char * vgname ,
int lock_type ) ;
2002-02-11 21:00:35 +00:00
int process_each_vg ( struct cmd_context * cmd , int argc , char * * argv ,
2002-11-18 14:04:08 +00:00
int lock_type , int consistent , void * handle ,
2002-02-11 21:00:35 +00:00
int ( * process_single ) ( struct cmd_context * cmd ,
2002-12-12 20:55:49 +00:00
const char * vg_name ,
struct volume_group * vg ,
int consistent , void * handle ) ) ;
2001-10-08 18:44:22 +00:00
2002-02-11 21:00:35 +00:00
int process_each_pv ( struct cmd_context * cmd , int argc , char * * argv ,
2002-11-18 14:04:08 +00:00
struct volume_group * vg , void * handle ,
2002-02-11 21:00:35 +00:00
int ( * process_single ) ( struct cmd_context * cmd ,
struct volume_group * vg ,
2002-11-18 14:04:08 +00:00
struct physical_volume * pv ,
void * handle ) ) ;
2005-04-19 20:58:25 +00:00
int process_each_segment_in_pv ( struct cmd_context * cmd ,
struct volume_group * vg ,
struct physical_volume * pv ,
void * handle ,
int ( * process_single ) ( struct cmd_context * cmd ,
struct volume_group * vg ,
struct pv_segment * pvseg ,
void * handle ) ) ;
2002-11-18 14:04:08 +00:00
2002-02-11 20:50:53 +00:00
int process_each_lv ( struct cmd_context * cmd , int argc , char * * argv ,
2002-11-18 14:04:08 +00:00
int lock_type , void * handle ,
2002-02-11 21:00:35 +00:00
int ( * process_single ) ( struct cmd_context * cmd ,
2002-11-18 14:04:08 +00:00
struct logical_volume * lv ,
void * handle ) ) ;
2001-11-19 15:20:50 +00:00
2002-12-12 20:55:49 +00:00
int process_each_segment_in_lv ( struct cmd_context * cmd ,
struct logical_volume * lv , void * handle ,
int ( * process_single ) ( struct cmd_context * cmd ,
struct lv_segment * seg ,
void * handle ) ) ;
2002-02-11 20:50:53 +00:00
int process_each_pv_in_vg ( struct cmd_context * cmd , struct volume_group * vg ,
2004-03-08 17:19:15 +00:00
struct list * tags , void * handle ,
2002-02-11 21:00:35 +00:00
int ( * process_single ) ( struct cmd_context * cmd ,
struct volume_group * vg ,
2002-11-18 14:04:08 +00:00
struct physical_volume * pv ,
void * handle ) ) ;
2002-02-11 20:50:53 +00:00
int process_each_lv_in_vg ( struct cmd_context * cmd , struct volume_group * vg ,
2004-03-08 17:19:15 +00:00
struct list * arg_lvnames , struct list * tags ,
2002-11-18 14:04:08 +00:00
void * handle ,
2002-02-11 21:00:35 +00:00
int ( * process_single ) ( struct cmd_context * cmd ,
2002-11-18 14:04:08 +00:00
struct logical_volume * lv ,
void * handle ) ) ;
2001-10-08 18:44:22 +00:00
2002-04-24 18:20:51 +00:00
char * default_vgname ( struct cmd_context * cmd ) ;
2002-12-19 23:25:55 +00:00
const char * extract_vgname ( struct cmd_context * cmd , const char * lv_name ) ;
2006-08-25 23:02:33 +00:00
char * skip_dev_dir ( struct cmd_context * cmd , const char * vg_name ) ;
2001-10-29 13:52:23 +00:00
2002-01-21 16:05:23 +00:00
/*
* Builds a list of pv ' s from the names in argv . Used in
* lvcreate / extend .
*/
2005-10-16 23:03:59 +00:00
struct list * create_pv_list ( struct dm_pool * mem , struct volume_group * vg , int argc ,
2004-08-17 21:55:23 +00:00
char * * argv , int allocatable_only ) ;
2002-01-21 16:05:23 +00:00
2005-10-16 23:03:59 +00:00
struct list * clone_pv_list ( struct dm_pool * mem , struct list * pvs ) ;
2003-04-24 22:23:24 +00:00
2005-06-03 14:49:51 +00:00
int apply_lvname_restrictions ( const char * name ) ;
2005-06-06 18:16:33 +00:00
int validate_vg_name ( struct cmd_context * cmd , const char * vg_name ) ;
2005-08-12 20:02:21 +00:00
int generate_log_name_format ( struct volume_group * vg , const char * lv_name ,
char * buffer , size_t size ) ;
2005-11-28 21:00:37 +00:00
struct logical_volume * create_mirror_log ( struct cmd_context * cmd ,
struct volume_group * vg ,
struct alloc_handle * ah ,
alloc_policy_t alloc ,
2006-05-11 18:39:24 +00:00
const char * lv_name ,
int in_sync ) ;
2005-11-28 21:00:37 +00:00
2006-11-03 21:07:15 +00:00
int set_lv ( struct cmd_context * cmd , struct logical_volume * lv ,
uint64_t sectors , int value ) ;
2005-08-04 01:14:36 +00:00
2001-09-25 12:49:28 +00:00
# endif