#ifndef lint
static const char rcsid[] =
- "$Id: tape.c,v 1.82 2004/03/08 14:04:04 stelian Exp $";
+ "$Id: tape.c,v 1.84 2004/05/25 10:39:29 stelian Exp $";
#endif /* not lint */
#include <config.h>
long long tapea_bytes = 0; /* bytes_written at start of current volume */
static int magtapeout; /* output is really a tape */
-static ssize_t dump_atomic_read __P((int, void *, size_t));
-static ssize_t dump_atomic_write __P((int, const void *, size_t));
+static ssize_t dump_atomic_read __P((int, char *, size_t));
+static ssize_t dump_atomic_write __P((int, const char *, size_t));
#ifdef WRITEDEBUG
static void doslave __P((int, int, int));
#else
int compresult;
volatile int do_compress = !first;
unsigned long worklen;
-#ifdef HAVE_BZLIB
- unsigned int worklen2;
-#endif
#ifdef HAVE_LZO
lzo_align_t __LZO_MMODEL *LZO_WorkMem;
#endif
#endif /* HAVE_ZLIB */
#ifdef HAVE_BZLIB
if (zipflag == COMPRESS_BZLIB) {
- worklen2 = worklen;
+ unsigned int worklen2 = worklen;
compresult = BZ2_bzBuffToBuffCompress(
comp_buf->buf,
&worklen2,
#endif /* HAVE_BZLIB */
#ifdef HAVE_LZO
if (zipflag == COMPRESS_LZO) {
+ lzo_uint worklen2 = worklen;
compresult = lzo1x_1_compress((char *)slp->tblock[0],writesize,
comp_buf->buf,
- (lzo_uintp)&worklen,
+ &worklen2,
LZO_WorkMem);
+ worklen = worklen2;
if (compresult == LZO_E_OK)
compresult = 1;
else
* loop until the count is satisfied (or error).
*/
static ssize_t
-dump_atomic_read(int fd, void *buf, size_t count)
+dump_atomic_read(int fd, char *buf, size_t count)
{
int got, need = count;
do {
while ((got = read(fd, buf, need)) > 0 && (need -= got) > 0)
- (char *)buf += got;
+ buf += got;
} while (got == -1 && errno == EINTR);
return (got < 0 ? got : (ssize_t)count - need);
}
* loop until the count is satisfied (or error).
*/
static ssize_t
-dump_atomic_write(int fd, const void *buf, size_t count)
+dump_atomic_write(int fd, const char *buf, size_t count)
{
int got, need = count;
do {
while ((got = write(fd, buf, need)) > 0 && (need -= got) > 0)
- (char *)buf += got;
+ buf += got;
} while (got == -1 && errno == EINTR);
return (got < 0 ? got : (ssize_t)count - need);
}