2002-01-10 15:22:17 +03: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 .
2002-01-10 15:22:17 +03: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
2002-01-10 15:22:17 +03:00
*/
2006-05-10 01:23:51 +04:00
# ifndef _LVM_FILE_H
# define _LVM_FILE_H
2002-01-10 15:22:17 +03:00
/*
* Create a temporary filename , and opens a descriptor to the file .
*/
int create_temp_name ( const char * dir , char * buffer , size_t len , int * fd ) ;
/*
* NFS - safe rename of a temporary file to a common name , designed
* to avoid race conditions and not overwrite the destination if
* it exists .
*/
int lvm_rename ( const char * old , const char * new ) ;
2002-02-11 18:42:34 +03:00
/*
* Return 1 if path exists else return 0
*/
int path_exists ( const char * path ) ;
int dir_exists ( const char * path ) ;
2002-03-12 01:23:24 +03:00
/*
* Return 1 if dir is empty
*/
int is_empty_dir ( const char * dir ) ;
2002-12-06 01:51:15 +03:00
/* Sync directory changes */
void sync_dir ( const char * file ) ;
2006-05-10 01:23:51 +04:00
2006-11-04 06:34:10 +03:00
/* fcntl locking wrappers */
int fcntl_lock_file ( const char * file , short lock_type , int warn_if_read_only ) ;
void fcntl_unlock_file ( int lockfd ) ;
2007-07-20 19:22:46 +04:00
# define is_same_inode(buf1, buf2) \
( ( buf1 ) . st_ino = = ( buf2 ) . st_ino & & \
( buf1 ) . st_dev = = ( buf2 ) . st_dev )
2007-07-24 21:48:08 +04:00
/*
* Close the specified stream , taking care to detect and diagnose any write
* error . If there is an error , use the supplied file name in a diagnostic
* that is reported via log_error or log_sys_error , as appropriate .
* Use this function to close a stream when you ' ve written data to it via
* unchecked fprintf , fputc , etc . calls . Return 0 on success , EOF on failure .
*/
int lvm_fclose ( FILE * fp , const char * filename ) ;
2006-05-10 01:23:51 +04:00
# endif