* errno.cc (errmap): Map ERROR_BEGINNING_OF_MEDIA and
ERROR_SETMARK_DETECTED to EIO instead of ESPIPE. Handle ERROR_FILEMARK_DETECTED. * fhandler_tape.cc (TAPE_FUNC): Add comment that ERROR_BUS_RESET has still to be handled correctly. (fhandler_dev_tape::open): Accomodate fact that get.mt_dsreg also contains density code. (fhandler_dev_tape::ioctl): Rearrange slightly. Reset devbuf also on MTNOP, MTWSM, MTSETBLK, MTSETDRVBUFFER, MTSETPART and MTMKPART. (fhandler_dev_tape::tape_set_pos): Rearrange. Match behaviour to the Linux tape driver. (fhandler_dev_tape::tape_status): Call IOCTL_STORAGE_GET_MEDIA_TYPES_EX if available. Return device type and density code in appropriate mtget members. * wincap.h (wincaps::has_ioctl_storage_get_media_types_ex): New element. * wincap.cc: Implement above element throughout. * include/cygwin/mtio.h: Add tape device types as returned by IOCTL_STORAGE_GET_MEDIA_TYPES_EX. (MT_TAPE_INFO): Use above type codes. (struct mtget): Change mt_dsreg comment.
This commit is contained in:
@@ -52,7 +52,8 @@ static NO_COPY wincaps wincap_unknown = {
|
||||
pty_needs_alloc_console:false,
|
||||
has_terminal_services:false,
|
||||
has_switch_to_thread:false,
|
||||
cant_debug_dll_entry:false
|
||||
cant_debug_dll_entry:false,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_95 = {
|
||||
@@ -96,7 +97,8 @@ static NO_COPY wincaps wincap_95 = {
|
||||
pty_needs_alloc_console:false,
|
||||
has_terminal_services:false,
|
||||
has_switch_to_thread:false,
|
||||
cant_debug_dll_entry:true
|
||||
cant_debug_dll_entry:true,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_95osr2 = {
|
||||
@@ -140,7 +142,8 @@ static NO_COPY wincaps wincap_95osr2 = {
|
||||
pty_needs_alloc_console:false,
|
||||
has_terminal_services:false,
|
||||
has_switch_to_thread:false,
|
||||
cant_debug_dll_entry:true
|
||||
cant_debug_dll_entry:true,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_98 = {
|
||||
@@ -184,7 +187,8 @@ static NO_COPY wincaps wincap_98 = {
|
||||
pty_needs_alloc_console:false,
|
||||
has_terminal_services:false,
|
||||
has_switch_to_thread:false,
|
||||
cant_debug_dll_entry:true
|
||||
cant_debug_dll_entry:true,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_98se = {
|
||||
@@ -228,7 +232,8 @@ static NO_COPY wincaps wincap_98se = {
|
||||
pty_needs_alloc_console:false,
|
||||
has_terminal_services:false,
|
||||
has_switch_to_thread:false,
|
||||
cant_debug_dll_entry:true
|
||||
cant_debug_dll_entry:true,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_me = {
|
||||
@@ -272,7 +277,8 @@ static NO_COPY wincaps wincap_me = {
|
||||
pty_needs_alloc_console:false,
|
||||
has_terminal_services:false,
|
||||
has_switch_to_thread:false,
|
||||
cant_debug_dll_entry:true
|
||||
cant_debug_dll_entry:true,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_nt3 = {
|
||||
@@ -316,7 +322,8 @@ static NO_COPY wincaps wincap_nt3 = {
|
||||
pty_needs_alloc_console:true,
|
||||
has_terminal_services:false,
|
||||
has_switch_to_thread:false,
|
||||
cant_debug_dll_entry:false
|
||||
cant_debug_dll_entry:false,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_nt4 = {
|
||||
@@ -360,7 +367,8 @@ static NO_COPY wincaps wincap_nt4 = {
|
||||
pty_needs_alloc_console:true,
|
||||
has_terminal_services:false,
|
||||
has_switch_to_thread:true,
|
||||
cant_debug_dll_entry:false
|
||||
cant_debug_dll_entry:false,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_nt4sp4 = {
|
||||
@@ -404,7 +412,8 @@ static NO_COPY wincaps wincap_nt4sp4 = {
|
||||
pty_needs_alloc_console:true,
|
||||
has_terminal_services:false,
|
||||
has_switch_to_thread:true,
|
||||
cant_debug_dll_entry:false
|
||||
cant_debug_dll_entry:false,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_2000 = {
|
||||
@@ -448,7 +457,8 @@ static NO_COPY wincaps wincap_2000 = {
|
||||
pty_needs_alloc_console:true,
|
||||
has_terminal_services:true,
|
||||
has_switch_to_thread:true,
|
||||
cant_debug_dll_entry:false
|
||||
cant_debug_dll_entry:false,
|
||||
has_ioctl_storage_get_media_types_ex:false
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_xp = {
|
||||
@@ -492,7 +502,8 @@ static NO_COPY wincaps wincap_xp = {
|
||||
pty_needs_alloc_console:true,
|
||||
has_terminal_services:true,
|
||||
has_switch_to_thread:true,
|
||||
cant_debug_dll_entry:false
|
||||
cant_debug_dll_entry:false,
|
||||
has_ioctl_storage_get_media_types_ex:true
|
||||
};
|
||||
|
||||
static NO_COPY wincaps wincap_2003 = {
|
||||
@@ -536,7 +547,8 @@ static NO_COPY wincaps wincap_2003 = {
|
||||
pty_needs_alloc_console:true,
|
||||
has_terminal_services:true,
|
||||
has_switch_to_thread:true,
|
||||
cant_debug_dll_entry:false
|
||||
cant_debug_dll_entry:false,
|
||||
has_ioctl_storage_get_media_types_ex:true
|
||||
};
|
||||
|
||||
wincapc wincap;
|
||||
|
Reference in New Issue
Block a user