X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Ffindlib%2Fbfile.h;h=ffbb08270f9c7c27a40f724f7604e14b29b2c566;hb=6a1ecd8bc5277fccabad2defaf2155b2b8a3c1a5;hp=a3ac4e733b0a98bd902df445dff34fc9129a4282;hpb=7d6fed06144e86eb46f184c55e52a68bc68f4907;p=bacula%2Fbacula diff --git a/bacula/src/findlib/bfile.h b/bacula/src/findlib/bfile.h index a3ac4e733b..ffbb08270f 100644 --- a/bacula/src/findlib/bfile.h +++ b/bacula/src/findlib/bfile.h @@ -1,3 +1,30 @@ +/* + Bacula® - The Network Backup Solution + + Copyright (C) 2003-2007 Free Software Foundation Europe e.V. + + 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 and included + 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. +*/ /* * Bacula low level File I/O routines. This routine simulates * open(), read(), write(), and close(), but using native routines. @@ -5,20 +32,6 @@ * * Kern Sibbald May MMIII */ -/* - Copyright (C) 2003-2005 Kern Sibbald - - 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. - - 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. - - */ #ifndef __BFILE_H #define __BFILE_H @@ -36,13 +49,27 @@ struct Python_IO { }; #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 /* ======================================================= * @@ -50,10 +77,7 @@ typedef struct _PROCESS_WIN32_BACKUPAPIBLOCK_CONTEXT { * * ======================================================= */ -#if defined(HAVE_CYGWIN) || defined(HAVE_WIN32) - -#include -#include "../lib/winapi.h" +#if defined(HAVE_WIN32) enum { BF_CLOSED, @@ -65,7 +89,7 @@ enum { /* 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 */ @@ -77,10 +101,8 @@ struct BFILE { 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); @@ -97,14 +119,13 @@ HANDLE bget_handle(BFILE *bfd); /* Basic Unix low level I/O file packet */ struct BFILE { int fid; /* file id on Unix */ + int m_flags; /* open flags */ int berrno; 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 @@ -116,7 +137,7 @@ bool set_portable_backup(BFILE *bfd); 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); @@ -126,11 +147,9 @@ int bopen_rsrc(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 */