* fhandler_tape.cc (mtinfo_drive::create_partitions): Allow partitioning

of drives supporting select partitions.
	(mtinfo_drive::get_status): Fill in current partition and number of
	partitions on tape into mt_resid.
	* include/cygwin/mtio.h (struct mtget): Align mt_resid comment to
	aforementioned change.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
This commit is contained in:
Corinna Vinschen 2013-08-21 20:28:12 +00:00
parent 30990eaa27
commit 3ee82da30d
5 changed files with 30 additions and 6 deletions

View File

@ -1,3 +1,13 @@
2013-08-21 Corinna Vinschen <corinna@vinschen.de>
* fhandler_tape.cc (mtinfo_drive::create_partitions): Allow partitioning
of drives supporting select partitions.
(mtinfo_drive::get_status): Fill in current partition and number of
partitions on tape into mt_resid.
* include/cygwin/mtio.h (struct mtget): Align mt_resid comment to
aforementioned change.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2013-08-20 Corinna Vinschen <corinna@vinschen.de>
* fhandler_tape.cc (mtinfo_drive::create_partitions): Fix long-standing

View File

@ -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;

View File

@ -1,6 +1,6 @@
/* cygwin/mtio.h
Copyright 1999, 2000, 2001, 2004 Red Hat, Inc.
Copyright 1999, 2000, 2001, 2004, 2013 Red Hat, Inc.
Written by Corinna Vinschen <corinna@vinschen.de>
@ -85,9 +85,12 @@ struct mtget {
* number of bytes ignored, or
* number of files not skipped, or
* number of records not skipped.
* Cygwin: remaining KB until 1.5.7.
* active partition since 1.5.8
* (same as on GNU-Linux).
* Cygwin:
* remaining KB until 1.5.7.
* active partition until 1.7.24.
* active partition in low 16 bits,
* number of partitions on this tape
* in next 16 bits, since 1.7.25.
*/
/* the following registers are device dependent */
long mt_dsreg; /* status register, Contains blocksize and

View File

@ -439,12 +439,14 @@ details. */
267: Export rawmemchr.
268: Export GetCommandLineA, GetCommandLineW
269: Allow application override of posix_memalign.
270: Redefine mtget.mt_resid field to contain current partition as well
as number of partitions on tape.
*/
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
#define CYGWIN_VERSION_API_MAJOR 0
#define CYGWIN_VERSION_API_MINOR 269
#define CYGWIN_VERSION_API_MINOR 270
/* There is also a compatibity version number associated with the
shared memory regions. It is incremented when incompatible

View File

@ -5,6 +5,9 @@ What's new:
What changed:
-------------
- Redefine content of mtget tape info struct to allow fetching the number of
partitions on a tape.
Bug fixes:
----------