Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2005-09-28 23:33:18 +0400
committerCorinna Vinschen <corinna@vinschen.de>2005-09-28 23:33:18 +0400
commitf098767559e00c93c86060b4e0894484b7d7dd67 (patch)
tree2bff26a7169199e774b432625d8bb0ed95c71859 /winsup/cygwin/wincap.cc
parentdcb091caaf9e00e840520141c1a74fb3f0eeb1d2 (diff)
* fhandler.h (class fhandler_dev_raw): Delete current_position and
eof_detected status flag. Delete is_eom and is_eof methods. Move drive_size, bytes_per_sector, eom_detected status flag, as well as the methods read_file, write_file, raw_read and raw_write to ... (class fhandler_dev_floppy): ... here. Remove is_eom and is_eof methods. Add dup method. * fhandler_floppy.cc (IS_EOM): New macro. (fhandler_dev_floppy::is_eom): Remove. (fhandler_dev_floppy::is_eof): Remove. (fhandler_dev_floppy::fhandler_dev_floppy): Initialize status flags. (fhandler_dev_floppy::get_drive_info): Only call EX functions on systems supporting them and stop suffering strange delays. (fhandler_dev_floppy::read_file): Move here, drop setting current_position. (fhandler_dev_floppy::write_file): Move here, drop setting current_position. (fhandler_dev_floppy::open): Rearrange comment. (fhandler_dev_floppy::dup): New method. (fhandler_dev_floppy::get_current_position): New inline method. Use instead of former current_position were appropriate. (fhandler_dev_floppy::raw_read): Move here. Drop EOF handling. (fhandler_dev_floppy::raw_write): Move here. Drop EOF handling. (fhandler_dev_floppy::lseek): Remove useless conditions. Convert sector_aligned_offset to LARGE_INTEGER to improve SetFilePointer call. (fhandler_dev_floppy::ioctl): Move blocksize check in RDSETBLK case to here. * fhandler_raw.cc (fhandler_dev_raw::is_eom): Remove. (fhandler_dev_raw::is_eof): Remove. (fhandler_dev_raw::write_file): Remove. (fhandler_dev_raw::read_file): Remove. (fhandler_dev_raw::raw_read): Remove. (fhandler_dev_raw::raw_write): Remove. (fhandler_dev_raw::dup): Drop copying removed members. (fhandler_dev_raw::ioctl): Drop blocksize testing. * wincap.h: Implement has_disk_ex_ioctls throughout. * wincap.cc: Ditto. (wincap_vista): Preliminary wincaps for Windows Vista/Longhorn. (wincapc::init): Add Vista/Longhorn handling.
Diffstat (limited to 'winsup/cygwin/wincap.cc')
-rw-r--r--winsup/cygwin/wincap.cc93
1 files changed, 81 insertions, 12 deletions
diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc
index a062c2ac2..2cfffc2d6 100644
--- a/winsup/cygwin/wincap.cc
+++ b/winsup/cygwin/wincap.cc
@@ -59,7 +59,8 @@ static NO_COPY wincaps wincap_unknown = {
has_extended_priority_class:false,
has_guid_volumes:false,
detect_win16_exe:true,
- has_null_console_handler_routine:false
+ has_null_console_handler_routine:false,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_95 = {
@@ -110,7 +111,8 @@ static NO_COPY wincaps wincap_95 = {
has_extended_priority_class:false,
has_guid_volumes:false,
detect_win16_exe:true,
- has_null_console_handler_routine:false
+ has_null_console_handler_routine:false,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_95osr2 = {
@@ -161,7 +163,8 @@ static NO_COPY wincaps wincap_95osr2 = {
has_extended_priority_class:false,
has_guid_volumes:false,
detect_win16_exe:true,
- has_null_console_handler_routine:false
+ has_null_console_handler_routine:false,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_98 = {
@@ -212,7 +215,8 @@ static NO_COPY wincaps wincap_98 = {
has_extended_priority_class:false,
has_guid_volumes:false,
detect_win16_exe:true,
- has_null_console_handler_routine:false
+ has_null_console_handler_routine:false,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_98se = {
@@ -263,7 +267,8 @@ static NO_COPY wincaps wincap_98se = {
has_extended_priority_class:false,
has_guid_volumes:false,
detect_win16_exe:true,
- has_null_console_handler_routine:false
+ has_null_console_handler_routine:false,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_me = {
@@ -314,7 +319,8 @@ static NO_COPY wincaps wincap_me = {
has_extended_priority_class:false,
has_guid_volumes:false,
detect_win16_exe:true,
- has_null_console_handler_routine:false
+ has_null_console_handler_routine:false,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_nt3 = {
@@ -365,7 +371,8 @@ static NO_COPY wincaps wincap_nt3 = {
has_extended_priority_class:false,
has_guid_volumes:false,
detect_win16_exe:false,
- has_null_console_handler_routine:true
+ has_null_console_handler_routine:true,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_nt4 = {
@@ -416,7 +423,8 @@ static NO_COPY wincaps wincap_nt4 = {
has_extended_priority_class:false,
has_guid_volumes:false,
detect_win16_exe:false,
- has_null_console_handler_routine:true
+ has_null_console_handler_routine:true,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_nt4sp4 = {
@@ -467,7 +475,8 @@ static NO_COPY wincaps wincap_nt4sp4 = {
has_extended_priority_class:false,
has_guid_volumes:false,
detect_win16_exe:false,
- has_null_console_handler_routine:true
+ has_null_console_handler_routine:true,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_2000 = {
@@ -518,7 +527,8 @@ static NO_COPY wincaps wincap_2000 = {
has_extended_priority_class:true,
has_guid_volumes:true,
detect_win16_exe:false,
- has_null_console_handler_routine:true
+ has_null_console_handler_routine:true,
+ has_disk_ex_ioctls:false
};
static NO_COPY wincaps wincap_xp = {
@@ -569,7 +579,8 @@ static NO_COPY wincaps wincap_xp = {
has_extended_priority_class:true,
has_guid_volumes:true,
detect_win16_exe:false,
- has_null_console_handler_routine:true
+ has_null_console_handler_routine:true,
+ has_disk_ex_ioctls:true
};
static NO_COPY wincaps wincap_2003 = {
@@ -620,7 +631,60 @@ static NO_COPY wincaps wincap_2003 = {
has_extended_priority_class:true,
has_guid_volumes:true,
detect_win16_exe:false,
- has_null_console_handler_routine:true
+ has_null_console_handler_routine:true,
+ has_disk_ex_ioctls:true
+};
+
+static NO_COPY wincaps wincap_vista = {
+ lock_file_highword:UINT32_MAX,
+ chunksize:0,
+ shared:FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
+ is_winnt:true,
+ is_server:true,
+ access_denied_on_delete:false,
+ has_delete_on_close:true,
+ has_page_guard:true,
+ has_security:true,
+ has_security_descriptor_control:true,
+ has_get_process_times:true,
+ has_lseek_bug:false,
+ has_lock_file_ex:true,
+ has_signal_object_and_wait:true,
+ has_eventlog:true,
+ has_ip_helper_lib:true,
+ has_set_handle_information:true,
+ has_set_handle_information_on_console_handles:true,
+ supports_smp:true,
+ map_view_of_file_ex_sucks:false,
+ altgr_is_ctrl_alt:true,
+ has_physical_mem_access:true,
+ has_working_copy_on_write:true,
+ share_mmaps_only_by_name:false,
+ virtual_protect_works_on_shared_pages:true,
+ has_hard_links:true,
+ can_open_directories:true,
+ has_move_file_ex:true,
+ has_negative_pids:false,
+ has_unreliable_pipes:false,
+ has_named_pipes:true,
+ has_try_enter_critical_section:true,
+ has_raw_devices:true,
+ has_valid_processorlevel:true,
+ has_64bit_file_access:true,
+ has_process_io_counters:true,
+ supports_reading_modem_output_lines:true,
+ needs_memory_protection:true,
+ pty_needs_alloc_console:true,
+ has_terminal_services:true,
+ has_switch_to_thread:true,
+ cant_debug_dll_entry:false,
+ has_ioctl_storage_get_media_types_ex:true,
+ start_proc_suspended:false,
+ has_extended_priority_class:true,
+ has_guid_volumes:true,
+ detect_win16_exe:false,
+ has_null_console_handler_routine:true,
+ has_disk_ex_ioctls:true
};
wincapc wincap;
@@ -676,6 +740,11 @@ wincapc::init ()
caps = &wincap_2003;
}
break;
+ case 6:
+ os = "NT";
+ has_osversioninfoex = true;
+ caps = &wincap_vista;
+ break;
default:
os = "??";
caps = &wincap_unknown;