diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-07-30 10:47:09 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-07-30 10:47:09 +0200 |
commit | 0e9c9f94821959eb281428a52e3a5630765ca6ac (patch) | |
tree | 37a01a60323441d6388ad7d76b01a94e658be1f6 /tools/cpio/src | |
parent | 8fab9e47804f0fcebb48ff75a1ddbbf51c714519 (diff) | |
parent | 5edd7d4a0d05bcdc3e5ba3402181fba588d9de62 (diff) |
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Diffstat (limited to 'tools/cpio/src')
-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) { |