summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_tape.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/fhandler_tape.cc')
-rw-r--r--winsup/cygwin/fhandler_tape.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_tape.cc b/winsup/cygwin/fhandler_tape.cc
index 8002b955d..969ee7653 100644
--- a/winsup/cygwin/fhandler_tape.cc
+++ b/winsup/cygwin/fhandler_tape.cc
@@ -560,6 +560,11 @@ mtinfo_drive::create_partitions (HANDLE mt, int32_t count)
TAPE_FUNC (CreateTapePartition (mt, TAPE_INITIATOR_PARTITIONS,
count <= 0 ? 0 : 2, (DWORD) count));
}
+ else if (get_feature (TAPE_DRIVE_SELECT))
+ {
+ TAPE_FUNC (CreateTapePartition (mt, TAPE_SELECT_PARTITIONS,
+ count <= 0 ? 0 : 2, 0));
+ }
else if (get_feature (TAPE_DRIVE_FIXED))
{
/* This is supposed to work for Tandberg SLR drivers up to version
@@ -798,7 +803,8 @@ mtinfo_drive::get_status (HANDLE mt, struct mtget *get)
if (!notape)
{
- get->mt_resid = partition;
+ get->mt_resid = (partition & 0xffff)
+ | ((mp ()->PartitionCount & 0xffff) << 16);
get->mt_fileno = part (partition)->file;
get->mt_blkno = part (partition)->fblock;