* Kern Sibbald May MMIII
*/
/*
- Copyright (C) 2003-2005 Kern Sibbald
+ 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
- version 2 as amended with additional clauses defined in the
- file LICENSE in the main source directory.
+ Copyright (C) 2003-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
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- the file LICENSE for additional details.
+ 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., 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 __BFILE_H
#define __BFILE_H
};
#endif
-#ifdef USE_WIN32STREAMEXTRACTION
+
+/* this should physically correspond to WIN32_STREAM_ID
+ * from winbase.h on Win32. We didn't inlcude cStreamName
+ * as we don't use it and don't need it for a correct struct size.
+ */
+
+#define WIN32_BACKUP_DATA 1
+
+typedef struct _BWIN32_STREAM_ID {
+ int32_t dwStreamId;
+ int32_t dwStreamAttributes;
+ int64_t Size;
+ int32_t dwStreamNameSize;
+} BWIN32_STREAM_ID, *LPBWIN32_STREAM_ID ;
+
+
typedef struct _PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT {
- LONGLONG liNextHeader;
- BOOL bIsInData;
- WIN32_STREAM_ID header_stream;
+ int64_t liNextHeader;
+ bool bIsInData;
+ BWIN32_STREAM_ID header_stream;
} PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT;
-#endif
/* =======================================================
*
*
* =======================================================
*/
-#if defined(HAVE_CYGWIN) || defined(HAVE_WIN32)
-
-#include <windows.h>
-#include "../lib/winapi.h"
+#if defined(HAVE_WIN32)
enum {
BF_CLOSED,
/* Basic Win32 low level I/O file packet */
struct BFILE {
- int use_backup_api; /* set if using BackupRead/Write */
+ bool use_backup_api; /* set if using BackupRead/Write */
int mode; /* set if file is open */
HANDLE fh; /* Win32 file handle */
int fid; /* fd if doing Unix style */
char *prog; /* reader/writer program if any */
JCR *jcr; /* jcr for editing job codes */
Python_IO pio; /* Python I/O routines */
-#ifdef USE_WIN32STREAMEXTRACTION
PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT win32DecompContext; /* context for decomposition of win32 backup streams */
int use_backup_decomp; /* set if using BackupRead Stream Decomposition */
-#endif
};
HANDLE bget_handle(BFILE *bfd);
char *prog; /* reader/writer program if any */
JCR *jcr; /* jcr for editing job codes */
Python_IO pio; /* Python I/O routines */
-#ifdef USE_WIN32STREAMEXTRACTION
PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT win32DecompContext; /* context for decomposition of win32 backup streams */
int use_backup_decomp; /* set if using BackupRead Stream Decomposition */
-#endif
};
#endif
bool set_prog(BFILE *bfd, char *prog, JCR *jcr);
bool have_win32_api();
bool is_portable_backup(BFILE *bfd);
-bool is_stream_supported(int stream);
+bool is_restore_stream_supported(int stream);
bool is_win32_stream(int stream);
char *xberror(BFILE *bfd); /* DO NOT USE -- use berrno class */
int bopen(BFILE *bfd, const char *fname, int flags, mode_t mode);
int bclose(BFILE *bfd);
ssize_t bread(BFILE *bfd, void *buf, size_t count);
ssize_t bwrite(BFILE *bfd, void *buf, size_t count);
-off_t blseek(BFILE *bfd, off_t offset, int whence);
+boffset_t blseek(BFILE *bfd, boffset_t offset, int whence);
const char *stream_to_ascii(int stream);
-#ifdef USE_WIN32STREAMEXTRACTION
-BOOL processWin32BackupAPIBlock (BFILE *bfd, void *pBuffer, size_t dwSize);
-#endif
+bool processWin32BackupAPIBlock (BFILE *bfd, void *pBuffer, ssize_t dwSize);
#endif /* __BFILE_H */