2 Bacula(R) - The Network Backup Solution
4 Copyright (C) 2000-2015 Kern Sibbald
5 Copyright (C) 2002-2014 Free Software Foundation Europe e.V.
7 The original author of Bacula is Kern Sibbald, with contributions
8 from many others, a complete list can be found in the file AUTHORS.
10 You may use this file and others of this release according to the
11 license defined in the LICENSE file, which includes the Affero General
12 Public License, v3.0 ("AGPLv3") and some additional permissions and
13 terms pursuant to its AGPLv3 Section 7.
15 This notice must be preserved when any source code is
16 conveyed and/or propagated.
18 Bacula(R) is a registered trademark of Kern Sibbald.
21 * BootStrap record definition -- for restoring files.
23 * Kern Sibbald, June 2002
32 #include "lib/bregex.h"
38 * List of Volume names to be read by Storage daemon.
39 * Formed by Storage daemon from BSR
43 char VolumeName[MAX_NAME_LENGTH];
44 char MediaType[MAX_NAME_LENGTH];
45 char device[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */
52 * !!!!!!!!!!!!!!!!!! NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
54 * !!! All records must have a pointer to !!!
55 * !!! the next item as the first item defined. !!!
57 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
62 char VolumeName[MAX_NAME_LENGTH];
63 char MediaType[MAX_NAME_LENGTH];
64 char device[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */
65 int32_t Slot; /* Slot */
70 char ClientName[MAX_NAME_LENGTH];
82 bool done; /* local done */
87 uint32_t sfile; /* start file */
88 uint32_t efile; /* end file */
89 bool done; /* local done */
94 uint32_t sblock; /* start block */
95 uint32_t eblock; /* end block */
96 bool done; /* local done */
101 uint64_t saddr; /* start address */
102 uint64_t eaddr; /* end address */
103 bool done; /* local done */
108 int32_t findex; /* start file index */
109 int32_t findex2; /* end file index */
110 bool done; /* local done */
124 struct BSR_JOBLEVEL {
131 char Job[MAX_NAME_LENGTH];
132 bool done; /* local done */
137 int32_t stream; /* stream desired */
141 /* NOTE!!! next must be the first item */
142 BSR *next; /* pointer to next one */
143 BSR *prev; /* pointer to previous one */
144 BSR *root; /* root bsr */
146 bool reposition; /* set when any bsr is marked done */
147 bool mount_next_volume; /* set when next volume should be mounted */
148 bool done; /* set when everything found for this bsr */
149 bool use_fast_rejection; /* set if fast rejection can be used */
150 bool use_positioning; /* set if we can position the archive */
151 bool skip_file; /* skip all records for current file */
153 uint32_t count; /* count of files to restore this bsr */
154 uint32_t found; /* count of restored files this bsr */
155 int32_t LastFI; /* LastFI seen by this bsr */
156 BSR_VOLFILE *volfile;
157 BSR_VOLBLOCK *volblock;
158 BSR_VOLADDR *voladdr;
159 BSR_SESSTIME *sesstime;
164 BSR_FINDEX *FileIndex;
165 BSR_JOBTYPE *JobType;
166 BSR_JOBLEVEL *JobLevel;
168 char *fileregex; /* set if restore is filtered on filename */
169 regex_t *fileregex_re;
170 ATTR *attr; /* scratch space for unpacking */