diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2010-07-30 20:20:57 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2010-07-30 20:20:57 +0200 |
commit | e2454e75ec1ee4aa50af8e96838c3feb53904d08 (patch) | |
tree | 5a05596c49e3e1533236c478434e79660c5345b0 /tools | |
parent | ee19c86dc8f3d69e9082d45d2824a18710311ecb (diff) | |
parent | 76acdb984750a027ddc2fc899e5a15d95251bb49 (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) { |