mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-09-10 04:50:03 -04:00
71 lines
2.2 KiB
C
71 lines
2.2 KiB
C
$NetBSD: patch-tapecopy.c,v 1.3 2013/10/15 14:14:53 ryoon Exp $
|
|
|
|
--- tapecopy.c.orig 2013-06-14 21:32:42.000000000 +0000
|
|
+++ tapecopy.c
|
|
@@ -245,15 +245,21 @@ static void print_usage (void)
|
|
static int obtain_status (char *devname, int devfd, struct mtget* mtget)
|
|
{
|
|
int rc; /* Return code */
|
|
+long gstat;
|
|
|
|
rc = ioctl_tape (devfd, MTIOCGET, (char*)mtget);
|
|
if (rc < 0)
|
|
{
|
|
+#if (defined(BSD) && BSD >= 199306)
|
|
+ gstat = (mtget->mt_dsreg << 16) | mtget->mt_erreg;
|
|
+#else
|
|
+ gstat = mtget->mt_gstat;
|
|
+#endif
|
|
if (1
|
|
&& EIO == errno
|
|
&& (0
|
|
- || GMT_EOD( mtget->mt_gstat )
|
|
- || GMT_EOT( mtget->mt_gstat )
|
|
+ || GMT_EOD( gstat )
|
|
+ || GMT_EOT( gstat )
|
|
)
|
|
)
|
|
return +1;
|
|
@@ -263,8 +269,8 @@ int rc;
|
|
return -1;
|
|
}
|
|
|
|
- if (GMT_EOD( mtget->mt_gstat ) ||
|
|
- GMT_EOT( mtget->mt_gstat ))
|
|
+ if (GMT_EOD( gstat ) ||
|
|
+ GMT_EOT( gstat ))
|
|
return +1;
|
|
|
|
return 0;
|
|
@@ -499,9 +505,14 @@ int64_t file_bytes;
|
|
char pathname[MAX_PATH]; /* file name in host format */
|
|
struct mtget mtget; /* Area for MTIOCGET ioctl */
|
|
#if defined(EXTERNALGUI)
|
|
+#if defined(BSD) && BSD >= 199306
|
|
+struct mtget mtpos; /* Area for MTIOCPOS ioctl */
|
|
+#else
|
|
struct mtpos mtpos; /* Area for MTIOCPOS ioctl */
|
|
+#endif
|
|
int is3590 = 0; /* 1 == 3590, 0 == 3480/3490 */
|
|
#endif /*defined(EXTERNALGUI)*/
|
|
+long gstat;
|
|
|
|
INITIALIZE_UTILITY("tapecopy");
|
|
|
|
@@ -639,8 +650,13 @@ int is3590 = 0;
|
|
printf (_("HHCTC004I %s tape density code: 0x%lX\n"),
|
|
(devnamein ? devnamein : devnameout), density);
|
|
|
|
- if (mtget.mt_gstat != 0)
|
|
- print_status ((devnamein ? devnamein : devnameout), mtget.mt_gstat);
|
|
+#if (defined(BSD) && BSD >= 199306)
|
|
+ gstat = (mtget.mt_dsreg << 16) | mtget.mt_erreg;
|
|
+#else
|
|
+ gstat = mtget.mt_gstat;
|
|
+#endif
|
|
+ if (gstat != 0)
|
|
+ print_status ((devnamein ? devnamein : devnameout), gstat);
|
|
|
|
/* Open the disk file */
|
|
if (filenamein)
|