2004-05-05 21:56:20 +04:00
/*
2015-05-11 14:39:16 +03:00
* Copyright ( C ) 2003 - 2004 Sistina Software , Inc . All rights reserved .
2015-05-04 15:32:32 +03:00
* Copyright ( C ) 2004 - 2015 Red Hat , Inc . All rights reserved .
2004-05-05 21:56:20 +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-05-05 21:56:20 +04:00
*
2007-08-21 00:55:30 +04:00
* You should have received a copy of the GNU Lesser General Public License
2004-05-05 21:56:20 +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
2004-05-05 21:56:20 +04:00
*/
# ifndef _LVM_TOOL_POLLDAEMON_H
# define _LVM_TOOL_POLLDAEMON_H
2018-05-14 12:30:20 +03:00
# include "lib/metadata/metadata-exported.h"
2004-05-05 21:56:20 +04:00
2009-09-30 22:15:06 +04:00
typedef enum {
PROGRESS_CHECK_FAILED = 0 ,
PROGRESS_UNFINISHED = 1 ,
PROGRESS_FINISHED_SEGMENT = 2 ,
PROGRESS_FINISHED_ALL = 3
} progress_t ;
struct daemon_parms ;
2004-05-05 21:56:20 +04:00
struct poll_functions {
2014-09-22 17:50:07 +04:00
const char * ( * get_copy_name_from_lv ) ( const struct logical_volume * lv ) ;
2009-09-30 22:15:06 +04:00
progress_t ( * poll_progress ) ( struct cmd_context * cmd ,
struct logical_volume * lv ,
const char * name ,
struct daemon_parms * parms ) ;
2008-04-09 16:45:32 +04:00
int ( * update_metadata ) ( struct cmd_context * cmd ,
struct volume_group * vg ,
2009-09-29 23:35:26 +04:00
struct logical_volume * lv ,
2008-11-04 01:14:30 +03:00
struct dm_list * lvs_changed , unsigned flags ) ;
2008-04-09 16:45:32 +04:00
int ( * finish_copy ) ( struct cmd_context * cmd ,
struct volume_group * vg ,
2009-09-29 23:35:26 +04:00
struct logical_volume * lv ,
2008-11-04 01:14:30 +03:00
struct dm_list * lvs_changed ) ;
2004-05-05 21:56:20 +04:00
} ;
2015-04-10 15:08:19 +03:00
struct poll_operation_id {
const char * vg_name ;
const char * lv_name ;
const char * display_name ;
const char * uuid ;
} ;
2004-05-05 21:56:20 +04:00
struct daemon_parms {
unsigned interval ;
2010-01-23 00:59:42 +03:00
unsigned wait_before_testing ;
2004-05-05 21:56:20 +04:00
unsigned aborting ;
unsigned background ;
unsigned outstanding_count ;
unsigned progress_display ;
2007-12-22 15:13:29 +03:00
const char * progress_title ;
2011-09-06 22:49:31 +04:00
uint64_t lv_type ;
2004-05-05 21:56:20 +04:00
struct poll_functions * poll_fns ;
} ;
2015-04-10 15:08:19 +03:00
int poll_daemon ( struct cmd_context * cmd , unsigned background ,
2011-09-06 22:49:31 +04:00
uint64_t lv_type , struct poll_functions * poll_fns ,
2015-04-10 15:08:19 +03:00
const char * progress_title , struct poll_operation_id * id ) ;
2004-05-05 21:56:20 +04:00
2009-09-30 22:15:06 +04:00
progress_t poll_mirror_progress ( struct cmd_context * cmd ,
struct logical_volume * lv , const char * name ,
struct daemon_parms * parms ) ;
2015-04-10 17:36:50 +03:00
int wait_for_single_lv ( struct cmd_context * cmd , struct poll_operation_id * id ,
struct daemon_parms * parms ) ;
2004-05-05 21:56:20 +04:00
# endif