vshost-util-vserver

Build script and sources for util-vserver.
git clone https://ccx.te2000.cz/git/vshost-util-vserver
Log | Files | Refs

vunify.h (2106B)


      1 // $Id$    --*- c -*--
      2 
      3 // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
      4 //  
      5 // This program is free software; you can redistribute it and/or modify
      6 // it under the terms of the GNU General Public License as published by
      7 // the Free Software Foundation; version 2 of the License.
      8 //  
      9 // This program is distributed in the hope that it will be useful,
     10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12 // GNU General Public License for more details.
     13 //  
     14 // You should have received a copy of the GNU General Public License
     15 // along with this program; if not, write to the Free Software
     16 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     17 
     18 
     19 #ifndef H_UTIL_VSERVER_SRC_VUNIFY_H
     20 #define H_UTIL_VSERVER_SRC_VUNIFY_H
     21 
     22 #include "lib_internal/matchlist.h"
     23 
     24 #include <sys/stat.h>
     25 
     26 struct dirent;
     27 struct WalkdownInfo
     28 {
     29     PathInfo				state;
     30     struct MatchList			dst_list;
     31     struct {
     32 	struct MatchList *		v;
     33 	size_t				l;
     34     }					src_lists;
     35 };
     36 
     37 struct SkipReason {
     38     enum { rsDOTFILE, rsEXCL_DST, rsEXCL_SRC,
     39 	   rsFSTAT, rsNOEXISTS, rsSYMLINK, rsUNIFIED,
     40 	   rsSPECIAL, rsDIFFERENT }	r;
     41 
     42     union {
     43 	struct MatchList const *	list;
     44     }					d;
     45 };
     46 
     47 struct Arguments {
     48     enum {mdMANUALLY, mdVSERVER}	mode;
     49     bool				do_revert;
     50     bool				do_dry_run;
     51     unsigned int			verbosity;
     52     bool				local_fs;
     53     bool				do_renew;
     54 };
     55 
     56 static bool	checkFstat(struct MatchList const * const,
     57 			   PathInfo const * const,
     58 			   PathInfo const * const,
     59 			   struct stat const ** const, struct stat * const,
     60 			   struct stat *) NONNULL((1,2,3,4,5,6));
     61 
     62 static struct MatchList const *
     63 checkDirEntry(PathInfo const *,
     64 	      PathInfo const *,
     65 	      bool *, struct stat *, struct stat *) NONNULL((1,2,3,4,5));
     66 
     67 static bool	updateSkipDepth(PathInfo const *, bool) NONNULL((1));
     68 static bool	doit(struct MatchList const *,
     69 		     PathInfo const *, struct stat const *,
     70 		     char const *dst_path, struct stat const *) NONNULL((1,2,3));
     71 
     72 #endif	//  H_UTIL_VSERVER_SRC_VUNIFY_H