summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2010-07-30 20:20:57 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2010-07-30 20:20:57 +0200
commite2454e75ec1ee4aa50af8e96838c3feb53904d08 (patch)
tree5a05596c49e3e1533236c478434e79660c5345b0 /tools
parentee19c86dc8f3d69e9082d45d2824a18710311ecb (diff)
parent76acdb984750a027ddc2fc899e5a15d95251bb49 (diff)
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Diffstat (limited to 'tools')
-rw-r--r--tools/cpio/src/cpio.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/tools/cpio/src/cpio.c b/tools/cpio/src/cpio.c
index 00f4a16b7..d91f25dc1 100644
--- a/tools/cpio/src/cpio.c
+++ b/tools/cpio/src/cpio.c
@@ -81,7 +81,8 @@ int sysv3;
#if defined (__linux__) || defined (__sun) || defined (__FreeBSD__) || \
defined (__hpux) || defined (_AIX) || defined (__NetBSD__) || \
- defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__)
+ defined (__OpenBSD__) || defined (__DragonFly__) || \
+ defined (__APPLE__) || defined (__CYGWIN__)
#include <sys/mtio.h>
#else /* SVR4.2MP */
#include <sys/scsi.h>
@@ -4495,7 +4496,8 @@ tseek(off_t n)
int i = (n - poffs) / tapeblock;
#if defined (__linux__) || defined (__sun) || defined (__FreeBSD__) || \
defined (__hpux) || defined (_AIX) || defined (__NetBSD__) || \
- defined (__OpenBSD__) || defined (__DragonFly__) || defined (__APPLE__)
+ defined (__OpenBSD__) || defined (__DragonFly__) || \
+ defined (__APPLE__) || defined (__CYGWIN__)
struct mtop mo;
mo.mt_op = i > 0 ? MTFSR : MTBSR;
mo.mt_count = i > 0 ? i : -i;
@@ -4735,7 +4737,7 @@ mstat(void)
emsg(3, "Error during stat() of archive");
done(1);
}
-#if defined (__linux__)
+#if defined (__linux__)
if ((mtst.st_mode&S_IFMT) == S_IFCHR) {
struct mtget mg;
if (ioctl(mt, MTIOCGET, &mg) == 0)
@@ -4787,6 +4789,13 @@ mstat(void)
if (ioctl(mt, MTIOCGET, &mg) == 0)
tapeblock = mg.mt_blksiz;
}
+#elif defined (__CYGWIN__)
+ if ((mtst.st_mode&S_IFMT) == S_IFCHR) {
+ struct mtget mg;
+ if (ioctl(mt, MTIOCGET, &mg) == 0)
+ tapeblock = (mg.mt_dsreg&MT_ST_BLKSIZE_MASK) >>
+ MT_ST_BLKSIZE_SHIFT;
+ }
#elif defined (__hpux) || defined (_AIX)
#else /* SVR4.2MP */
if ((mtst.st_mode&S_IFMT) == S_IFCHR) {