2001-10-03 16:41:29 +04: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-10-03 16:41:29 +04: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 ,
* Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
2001-10-03 16:41:29 +04:00
*/
# ifndef _LVM_DEV_CACHE_H
# define _LVM_DEV_CACHE_H
# include "device.h"
/*
* predicate for devices .
*/
struct dev_filter {
2002-12-20 02:25:55 +03:00
int ( * passes_filter ) ( struct dev_filter * f , struct device * dev ) ;
void ( * destroy ) ( struct dev_filter * f ) ;
2001-10-03 16:41:29 +04:00
void * private ;
} ;
/*
* The global device cache .
*/
2007-04-26 20:44:59 +04:00
struct cmd_context ;
int dev_cache_init ( struct cmd_context * cmd ) ;
2001-10-03 16:41:29 +04:00
void dev_cache_exit ( void ) ;
2002-11-18 17:01:16 +03:00
/* Trigger(1) or avoid(0) a scan */
void dev_cache_scan ( int do_scan ) ;
int dev_cache_has_scanned ( void ) ;
2001-10-03 16:41:29 +04:00
int dev_cache_add_dir ( const char * path ) ;
2005-05-03 21:28:23 +04:00
int dev_cache_add_loopfile ( const char * path ) ;
2001-10-03 16:41:29 +04:00
struct device * dev_cache_get ( const char * name , struct dev_filter * f ) ;
2007-04-26 20:44:59 +04:00
void dev_set_preferred_name ( struct str_list * sl , struct device * dev ) ;
2001-10-03 16:41:29 +04:00
/*
* Object for iterating through the cache .
*/
struct dev_iter ;
2005-03-08 16:46:17 +03:00
struct dev_iter * dev_iter_create ( struct dev_filter * f , int dev_scan ) ;
2001-10-03 16:41:29 +04:00
void dev_iter_destroy ( struct dev_iter * iter ) ;
struct device * dev_iter_get ( struct dev_iter * iter ) ;
# endif