diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-07-30 11:09:39 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-07-30 11:09:39 +0200 |
commit | 6506a9625c772f787201532cc579c2652ad437c8 (patch) | |
tree | 0c100d31f4052751f48d7dd843a23ec0d9d5ae1b /tools | |
parent | 4d36338cd8f5a2ede3f6d199a9e507fe10b95959 (diff) | |
parent | 0e9c9f94821959eb281428a52e3a5630765ca6ac (diff) |
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Diffstat (limited to 'tools')
-rw-r--r-- | tools/cpio/src/cpio.c | 15 |
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) { |