2001-10-01 23:29:52 +04:00
/*
2013-08-14 02:26:58 +04:00
* Copyright ( C ) 2001 - 2004 Sistina Software , Inc . All rights reserved .
* Copyright ( C ) 2004 Luca Berra
* Copyright ( C ) 2004 - 2013 Red Hat , Inc . All rights reserved .
2001-10-01 23:29:52 +04:00
*
2004-03-30 23:35:44 +04:00
* This file is part of LVM2 .
2001-10-01 23:29:52 +04:00
*
2004-03-30 23:35:44 +04:00
* 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 .
2001-10-01 23:29:52 +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 ,
* Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
2001-10-01 23:29:52 +04:00
*/
# ifndef _LVM_FILTER_H
# define _LVM_FILTER_H
2013-06-12 14:08:56 +04:00
# include "dev-cache.h"
# include "dev-type.h"
2002-12-03 19:20:38 +03:00
2013-08-14 02:26:58 +04:00
struct dev_filter * composite_filter_create ( int n , struct dev_filter * * filters ) ;
2013-06-12 14:08:56 +04:00
struct dev_filter * lvm_type_filter_create ( struct dev_types * dt ) ;
2013-08-14 02:26:58 +04:00
struct dev_filter * md_filter_create ( struct dev_types * dt ) ;
struct dev_filter * mpath_filter_create ( struct dev_types * dt ) ;
struct dev_filter * partitioned_filter_create ( struct dev_types * dt ) ;
struct dev_filter * persistent_filter_create ( struct dev_types * dt ,
struct dev_filter * f ,
const char * file ) ;
struct dev_filter * sysfs_filter_create ( void ) ;
2009-10-27 20:00:44 +03:00
2013-08-14 02:26:58 +04:00
/*
* patterns must be an array of strings of the form :
* [ ra ] < sep > < regex > < sep > , eg ,
* r / cdrom / - reject cdroms
* a | loop / [ 0 - 4 ] | - accept loops 0 to 4
* r | . * | - reject everything else
*/
struct dev_filter * regex_filter_create ( const struct dm_config_value * patterns ) ;
2014-09-23 14:49:01 +04:00
typedef enum {
FILTER_MODE_NO_LVMETAD ,
FILTER_MODE_PRE_LVMETAD ,
FILTER_MODE_POST_LVMETAD
} filter_mode_t ;
struct dev_filter * usable_filter_create ( struct dev_types * dt , filter_mode_t mode ) ;
2013-08-14 02:26:58 +04:00
int persistent_filter_load ( struct dev_filter * f , struct dm_config_tree * * cft_out ) ;
# endif /* _LVM_FILTER_H */