2 * File types as returned by find_files()
7 Copyright (C) 2000-2003 Kern Sibbald and John Walker
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License as
11 published by the Free Software Foundation; either version 2 of
12 the License, or (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 General Public License for more details.
19 You should have received a copy of the GNU General Public
20 License along with this program; if not, write to the Free
21 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
34 #define NAMELEN(dirent) (strlen((dirent)->d_name))
47 #define MODE_RALL (S_IRUSR|S_IRGRP|S_IROTH)
52 #include "lib/fnmatch.h"
57 #ifndef HAVE_READDIR_R
58 int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
63 * Status codes returned by create_file()
66 CF_SKIP = 1, /* skip file (not newer or something) */
67 CF_ERROR, /* error creating file */
68 CF_EXTRACT, /* file created, data to extract */
69 CF_CREATED /* file created, no data to extract */
73 /* Options saved int "options" of the include/exclude lists.
74 * They are directly jammed ito "flag" of ff packet
76 #define FO_MD5 (1<<1) /* Do MD5 checksum */
77 #define FO_GZIP (1<<2) /* Do Zlib compression */
78 #define FO_NO_RECURSION (1<<3) /* no recursion in directories */
79 #define FO_MULTIFS (1<<4) /* multiple file systems */
80 #define FO_SPARSE (1<<5) /* do sparse file checking */
81 #define FO_IF_NEWER (1<<6) /* replace if newer */
82 #define FO_NOREPLACE (1<<7) /* never replace */
83 #define FO_READFIFO (1<<8) /* read data from fifo */
84 #define FO_SHA1 (1<<9) /* Do SHA1 checksum */
85 #define FO_PORTABLE (1<<10) /* Use portable data format -- no BackupWrite */
87 struct s_included_file {
88 struct s_included_file *next;
89 uint32_t options; /* backup options */
90 int level; /* compression level */
91 int len; /* length of fname */
92 int pattern; /* set if wild card pattern */
93 char VerifyOpts[20]; /* Options for verify */
97 struct s_excluded_file {
98 struct s_excluded_file *next;
105 * Definition of the find_files packet passed as the
106 * first argument to the find_files callback subroutine.
109 char *fname; /* filename */
110 char *link; /* link if file linked */
111 POOLMEM *sys_fname; /* system filename */
112 struct stat statp; /* stat packet */
113 int32_t FileIndex; /* FileIndex of this file */
114 int32_t LinkFI; /* FileIndex of main hard linked file */
115 struct f_link *linked; /* Set if this file is hard linked */
116 int type; /* FT_ type from above */
117 uint32_t flags; /* control flags */
118 int ff_errno; /* errno */
119 int incremental; /* do incremental save */
120 BFILE bfd; /* Bacula file descriptor */
121 time_t save_time; /* start of incremental time */
122 int mtime_only; /* incremental on mtime_only */
123 int dereference; /* follow links */
124 int GZIP_level; /* compression level */
125 int atime_preserve; /* preserve access times */
126 int null_output_device; /* using null output device */
128 struct s_included_file *included_files_list;
129 struct s_excluded_file *excluded_files_list;
130 struct s_excluded_file *excluded_paths_list;
132 /* List of all hard linked files found */
133 struct f_link *linklist; /* hard linked files */
139 #endif /* __FILES_H */