2 Bacula® - The Network Backup Solution
4 Copyright (C) 2002-2008 Free Software Foundation Europe e.V.
6 The main author of Bacula is Kern Sibbald, with contributions from
7 many others, a complete list can be found in the file AUTHORS.
8 This program is Free Software; you can redistribute it and/or
9 modify it under the terms of version two of the GNU General Public
10 License as published by the Free Software Foundation and included
13 This program is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 Bacula® is a registered trademark of Kern Sibbald.
24 The licensor of Bacula is the Free Software Foundation Europe
25 (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
26 Switzerland, email:ftf@fsfeurope.org.
29 * BootStrap record definition -- for restoring files.
31 * Kern Sibbald, June 2002
42 #include "lib/bregex.h"
48 * List of Volume names to be read by Storage daemon.
49 * Formed by Storage daemon from BSR
53 char VolumeName[MAX_NAME_LENGTH];
54 char MediaType[MAX_NAME_LENGTH];
55 char device[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */
62 * !!!!!!!!!!!!!!!!!! NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
64 * !!! All records must have a pointer to !!!
65 * !!! the next item as the first item defined. !!!
67 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
72 char VolumeName[MAX_NAME_LENGTH];
73 char MediaType[MAX_NAME_LENGTH];
74 char device[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */
75 int32_t Slot; /* Slot */
80 char ClientName[MAX_NAME_LENGTH];
92 bool done; /* local done */
97 uint32_t sfile; /* start file */
98 uint32_t efile; /* end file */
99 bool done; /* local done */
102 struct BSR_VOLBLOCK {
104 uint32_t sblock; /* start block */
105 uint32_t eblock; /* end block */
106 bool done; /* local done */
111 uint64_t saddr; /* start address */
112 uint64_t eaddr; /* end address */
113 bool done; /* local done */
118 int32_t findex; /* start file index */
119 int32_t findex2; /* end file index */
120 bool done; /* local done */
134 struct BSR_JOBLEVEL {
141 char Job[MAX_NAME_LENGTH];
142 bool done; /* local done */
147 int32_t stream; /* stream desired */
151 /* NOTE!!! next must be the first item */
152 BSR *next; /* pointer to next one */
153 BSR *prev; /* pointer to previous one */
154 BSR *root; /* root bsr */
155 bool reposition; /* set when any bsr is marked done */
156 bool mount_next_volume; /* set when next volume should be mounted */
157 bool done; /* set when everything found for this bsr */
158 bool use_fast_rejection; /* set if fast rejection can be used */
159 bool use_positioning; /* set if we can position the archive */
160 bool skip_file; /* skip all records for current file */
162 uint32_t count; /* count of files to restore this bsr */
163 uint32_t found; /* count of restored files this bsr */
164 BSR_VOLFILE *volfile;
165 BSR_VOLBLOCK *volblock;
166 BSR_VOLADDR *voladdr;
167 BSR_SESSTIME *sesstime;
172 BSR_FINDEX *FileIndex;
173 BSR_JOBTYPE *JobType;
174 BSR_JOBLEVEL *JobLevel;
176 char *fileregex; /* set if restore is filtered on filename */
177 regex_t *fileregex_re;
178 ATTR *attr; /* scratch space for unpacking */