X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fstored%2Fbsr.h;h=1758b2bc1f11188b04a11526a24c5832f320f134;hb=d6a1dde94e0ab1de2e40f5233e247f6bb0312761;hp=c6728e17fd93d24c7bcf207092cc9a05d00b7368;hpb=8956c9dd0d61a7e86de7a833939380a7df5bff7f;p=bacula%2Fbacula diff --git a/bacula/src/stored/bsr.h b/bacula/src/stored/bsr.h index c6728e17fd..1758b2bc1f 100644 --- a/bacula/src/stored/bsr.h +++ b/bacula/src/stored/bsr.h @@ -7,30 +7,50 @@ * */ /* - Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker + Bacula® - The Network Backup Solution - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. + Copyright (C) 2002-2006 Free Software Foundation Europe e.V. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of + The main author of Bacula is Kern Sibbald, with contributions from + many others, a complete list can be found in the file AUTHORS. + This program is Free Software; you can redistribute it and/or + modify it under the terms of version two of the GNU General Public + License as published by the Free Software Foundation plus additions + that are listed in the file LICENSE. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public - License along with this program; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. - */ + Bacula® is a registered trademark of John Walker. + The licensor of Bacula is the Free Software Foundation Europe + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. +*/ #ifndef __BSR_H #define __BSR_H 1 -#include "findlib/find.h" +/* + * List of Volume names to be read by Storage daemon. + * Formed by Storage daemon from BSR + */ +struct VOL_LIST { + VOL_LIST *next; + char VolumeName[MAX_NAME_LENGTH]; + char MediaType[MAX_NAME_LENGTH]; + char device[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */ + int Slot; + uint32_t start_file; +}; + /* * !!!!!!!!!!!!!!!!!! NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -41,68 +61,103 @@ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ -typedef struct s_bsr_client { - struct s_bsr_client *next; - char *ClientName; -} BSR_CLIENT; - -typedef struct s_bsr_sessid { - struct s_bsr_sessid *next; - int type; - uint32_t sessid1; +struct BSR_VOLUME { + BSR_VOLUME *next; + char VolumeName[MAX_NAME_LENGTH]; + char MediaType[MAX_NAME_LENGTH]; + char device[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */ + int32_t Slot; /* Slot */ +}; + +struct BSR_CLIENT { + BSR_CLIENT *next; + char ClientName[MAX_NAME_LENGTH]; +}; + +struct BSR_SESSID { + BSR_SESSID *next; + uint32_t sessid; uint32_t sessid2; - int found; -} BSR_SESSID; +}; -typedef struct s_bsr_sesstime { - struct s_bsr_sesstime *next; +struct BSR_SESSTIME { + BSR_SESSTIME *next; uint32_t sesstime; - int found; -} BSR_SESSTIME; - -typedef struct s_bsr_findex { - struct s_bsr_findex *next; - int32_t FileIndex; - int found; -} BSR_FINDEX; - -typedef struct s_bsr_jobid { - struct s_bsr_jobid *next; + bool done; /* local done */ +}; + +struct BSR_VOLFILE { + BSR_VOLFILE *next; + uint32_t sfile; /* start file */ + uint32_t efile; /* end file */ + bool done; /* local done */ +}; + +struct BSR_VOLBLOCK { + BSR_VOLBLOCK *next; + uint32_t sblock; /* start block */ + uint32_t eblock; /* end block */ + bool done; /* local done */ +}; + + +struct BSR_FINDEX { + BSR_FINDEX *next; + int32_t findex; /* start file index */ + int32_t findex2; /* end file index */ + bool done; /* local done */ +}; + +struct BSR_JOBID { + BSR_JOBID *next; uint32_t JobId; - int found; -} BSR_JOBID; + uint32_t JobId2; +}; -typedef struct s_bsr_jobtype { - struct s_bsr_jobtype *next; +struct BSR_JOBTYPE { + BSR_JOBTYPE *next; uint32_t JobType; -} BSR_JOBTYPE; +}; -typedef struct s_bsr_joblevel { - struct s_bsr_joblevel *next; +struct BSR_JOBLEVEL { + BSR_JOBLEVEL *next; uint32_t JobLevel; -} BSR_JOBLEVEL; - -typedef struct s_bsr_job { - struct s_bsr_job *next; - char *Job; - int found; -} BSR_JOB; - - -typedef struct s_bsr { - struct s_bsr *next; /* pointer to next one */ - int done; /* set when everything found */ - char *VolumeName; - BSR_CLIENT *client; - BSR_JOB *job; - BSR_SESSID *sessid; +}; + +struct BSR_JOB { + BSR_JOB *next; + char Job[MAX_NAME_LENGTH]; + bool done; /* local done */ +}; + +struct BSR_STREAM { + BSR_STREAM *next; + int32_t stream; /* stream desired */ +}; + +struct BSR { + BSR *next; /* pointer to next one */ + BSR *root; /* root bsr */ + bool reposition; /* set when any bsr is marked done */ + bool mount_next_volume; /* set when next volume should be mounted */ + bool done; /* set when everything found for this bsr */ + bool use_fast_rejection; /* set if fast rejection can be used */ + bool use_positioning; /* set if we can position the archive */ + BSR_VOLUME *volume; + uint32_t count; /* count of files to restore this bsr */ + uint32_t found; /* count of restored files this bsr */ + BSR_VOLFILE *volfile; + BSR_VOLBLOCK *volblock; BSR_SESSTIME *sesstime; - BSR_FINDEX *FileIndex; + BSR_SESSID *sessid; BSR_JOBID *JobId; + BSR_JOB *job; + BSR_CLIENT *client; + BSR_FINDEX *FileIndex; BSR_JOBTYPE *JobType; BSR_JOBLEVEL *JobLevel; - FF_PKT *ff; /* include/exclude */ -} BSR; + BSR_STREAM *stream; +}; #endif