2001-10-09 16:05:34 +00:00
/*
2004-03-30 19:35:44 +00:00
* Copyright ( C ) 2001 - 2004 Sistina Software , Inc . All rights reserved .
2007-08-20 20:55:30 +00:00
* Copyright ( C ) 2004 - 2007 Red Hat , Inc . All rights reserved .
2001-10-09 16:05:34 +00:00
*
2004-03-30 19:35:44 +00: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-20 20:55:30 +00:00
* of the GNU Lesser General Public License v .2 .1 .
2004-03-30 19:35:44 +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
2001-10-09 16:05:34 +00:00
*/
2001-10-16 16:25:28 +00:00
# ifndef LVM_ACTIVATE_H
# define LVM_ACTIVATE_H
2001-10-09 16:05:34 +00:00
2007-07-18 15:38:58 +00:00
# include "metadata-exported.h"
2003-01-08 22:44:07 +00:00
struct lvinfo {
int exists ;
int suspended ;
unsigned int open_count ;
int major ;
int minor ;
int read_only ;
2005-11-08 22:52:26 +00:00
int live_table ;
int inactive_table ;
2007-11-12 20:51:54 +00:00
uint32_t read_ahead ;
2003-01-08 22:44:07 +00:00
} ;
2001-11-21 19:32:35 +00:00
2008-04-07 10:23:47 +00:00
/* target attribute flags */
# define MIRROR_LOG_CLUSTERED 0x00000001U
2002-11-18 14:01:16 +00:00
void set_activation ( int activation ) ;
2002-12-19 23:25:55 +00:00
int activation ( void ) ;
2002-11-18 14:01:16 +00:00
2002-01-17 16:39:24 +00:00
int driver_version ( char * version , size_t size ) ;
int library_version ( char * version , size_t size ) ;
2004-04-08 15:23:23 +00:00
int lvm1_present ( struct cmd_context * cmd ) ;
2002-01-17 16:39:24 +00:00
2009-02-28 00:54:06 +00:00
int module_present ( struct cmd_context * cmd , const char * target_name ) ;
int target_present ( struct cmd_context * cmd , const char * target_name ,
int use_modprobe ) ;
2005-12-19 21:01:39 +00:00
int target_version ( const char * target_name , uint32_t * maj ,
uint32_t * min , uint32_t * patchlevel ) ;
2006-10-03 17:55:20 +00:00
int list_segment_modules ( struct dm_pool * mem , const struct lv_segment * seg ,
2008-11-03 22:14:30 +00:00
struct dm_list * modules ) ;
2006-10-03 17:55:20 +00:00
int list_lv_modules ( struct dm_pool * mem , const struct logical_volume * lv ,
2008-11-03 22:14:30 +00:00
struct dm_list * modules ) ;
2004-03-26 19:52:09 +00:00
2006-05-16 16:48:31 +00:00
void activation_release ( void ) ;
2003-07-04 22:34:56 +00:00
void activation_exit ( void ) ;
2004-03-08 18:54:13 +00:00
int lv_suspend ( struct cmd_context * cmd , const char * lvid_s ) ;
2003-04-24 22:09:13 +00:00
int lv_suspend_if_active ( struct cmd_context * cmd , const char * lvid_s ) ;
2004-03-08 18:54:13 +00:00
int lv_resume ( struct cmd_context * cmd , const char * lvid_s ) ;
2003-04-24 22:09:13 +00:00
int lv_resume_if_active ( struct cmd_context * cmd , const char * lvid_s ) ;
2005-08-14 23:18:28 +00:00
int lv_activate ( struct cmd_context * cmd , const char * lvid_s , int exclusive ) ;
int lv_activate_with_filter ( struct cmd_context * cmd , const char * lvid_s ,
int exclusive ) ;
2003-04-24 22:09:13 +00:00
int lv_deactivate ( struct cmd_context * cmd , const char * lvid_s ) ;
2003-11-12 19:16:48 +00:00
int lv_mknodes ( struct cmd_context * cmd , const struct logical_volume * lv ) ;
2002-02-11 17:42:02 +00:00
/*
* Returns 1 if info structure has been populated , else 0.
*/
2005-10-17 18:00:02 +00:00
int lv_info ( struct cmd_context * cmd , const struct logical_volume * lv , struct lvinfo * info ,
2007-11-12 20:51:54 +00:00
int with_open_count , int with_read_ahead ) ;
2004-03-26 15:35:01 +00:00
int lv_info_by_lvid ( struct cmd_context * cmd , const char * lvid_s ,
2007-11-12 20:51:54 +00:00
struct lvinfo * info , int with_open_count , int with_read_ahead ) ;
2004-03-08 18:54:13 +00:00
/*
* Returns 1 if activate_lv has been set : 1 = activate ; 0 = don ' t .
*/
int lv_activation_filter ( struct cmd_context * cmd , const char * lvid_s ,
2004-03-26 19:52:09 +00:00
int * activate_lv ) ;
2004-03-08 18:54:13 +00:00
2002-05-09 21:17:57 +00:00
/*
* Returns 1 if percent has been set , else 0.
*/
2006-04-06 14:06:27 +00:00
int lv_snapshot_percent ( const struct logical_volume * lv , float * percent ) ;
int lv_mirror_percent ( struct cmd_context * cmd , struct logical_volume * lv ,
int wait , float * percent , uint32_t * event_nr ) ;
2001-11-07 15:02:07 +00:00
2001-11-07 11:51:42 +00:00
/*
2002-02-11 15:48:34 +00:00
* Return number of LVs in the VG that are active .
2001-11-07 11:51:42 +00:00
*/
2001-10-16 16:25:28 +00:00
int lvs_in_vg_activated ( struct volume_group * vg ) ;
2007-03-08 21:08:25 +00:00
int lvs_in_vg_activated_by_uuid_only ( struct volume_group * vg ) ;
2007-08-07 09:06:05 +00:00
int lvs_in_vg_opened ( const struct volume_group * vg ) ;
2001-10-16 16:25:28 +00:00
2008-04-10 21:34:18 +00:00
int lv_is_active ( struct logical_volume * lv ) ;
2006-05-12 19:16:48 +00:00
2007-01-19 22:21:45 +00:00
int monitor_dev_for_events ( struct cmd_context * cmd ,
2006-05-12 19:16:48 +00:00
struct logical_volume * lv , int do_reg ) ;
2005-10-25 19:08:21 +00:00
/*
* Returns 1 if PV has a dependency tree that uses anything in VG .
*/
2006-05-11 17:58:58 +00:00
int pv_uses_vg ( struct physical_volume * pv ,
2005-10-25 19:08:21 +00:00
struct volume_group * vg ) ;
2007-01-25 21:22:30 +00:00
/*
* Returns 1 if mapped device is not suspended .
*/
int device_is_usable ( dev_t dev ) ;
2001-10-09 16:05:34 +00:00
# endif