diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 8975e68fc..a1c855ff0 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2014-12-01 Corinna Vinschen + + * wincap.cc (wincap_minimal): Remove. + (wincaps): Drop has_physical_mem_access. + (wincap_10): New global wincaps to support Windows 10. + (wincapc::init): Use wincap_10 for version >= 6.4 and as default. + * wincap.h (wincaps::has_physical_mem_access): remove. + 2014-11-28 Corinna Vinschen * cygheap.cc (init_cygheap::init_tls_list): Accommodate threadlist diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc index f6faa03b6..279754a9c 100644 --- a/winsup/cygwin/wincap.cc +++ b/winsup/cygwin/wincap.cc @@ -20,13 +20,9 @@ details. */ in the same session. I'm only writing this longish comment because I'm puzzled that this has never been noticed before... */ -/* Minimal set of capabilities required to run Cygwin. */ -#define wincap_minimal wincap_xpsp2 - wincaps wincap_xpsp2 __attribute__((section (".cygwin_dll_common"), shared)) = { max_sys_priv:SE_CREATE_GLOBAL_PRIVILEGE, is_server:false, - has_physical_mem_access:true, has_mandatory_integrity_control:false, needs_count_in_si_lpres2:false, has_recycle_dot_bin:false, @@ -55,7 +51,6 @@ wincaps wincap_xpsp2 __attribute__((section (".cygwin_dll_common"), shared)) = { wincaps wincap_2003 __attribute__((section (".cygwin_dll_common"), shared)) = { max_sys_priv:SE_CREATE_GLOBAL_PRIVILEGE, is_server:false, - has_physical_mem_access:false, has_mandatory_integrity_control:false, needs_count_in_si_lpres2:false, has_recycle_dot_bin:false, @@ -84,7 +79,6 @@ wincaps wincap_2003 __attribute__((section (".cygwin_dll_common"), shared)) = { wincaps wincap_vista __attribute__((section (".cygwin_dll_common"), shared)) = { max_sys_priv:SE_CREATE_SYMBOLIC_LINK_PRIVILEGE, is_server:false, - has_physical_mem_access:false, has_mandatory_integrity_control:true, needs_count_in_si_lpres2:true, has_recycle_dot_bin:true, @@ -113,7 +107,6 @@ wincaps wincap_vista __attribute__((section (".cygwin_dll_common"), shared)) = { wincaps wincap_7 __attribute__((section (".cygwin_dll_common"), shared)) = { max_sys_priv:SE_CREATE_SYMBOLIC_LINK_PRIVILEGE, is_server:false, - has_physical_mem_access:false, has_mandatory_integrity_control:true, needs_count_in_si_lpres2:false, has_recycle_dot_bin:true, @@ -142,7 +135,34 @@ wincaps wincap_7 __attribute__((section (".cygwin_dll_common"), shared)) = { wincaps wincap_8 __attribute__((section (".cygwin_dll_common"), shared)) = { max_sys_priv:SE_CREATE_SYMBOLIC_LINK_PRIVILEGE, is_server:false, - has_physical_mem_access:false, + has_mandatory_integrity_control:true, + needs_count_in_si_lpres2:false, + has_recycle_dot_bin:true, + has_gaa_on_link_prefix:true, + has_gaa_largeaddress_bug:false, + supports_all_posix_ai_flags:true, + has_restricted_stack_args:false, + has_transactions:true, + has_sendmsg:true, + has_broken_udf:false, + has_broken_alloc_console:true, + has_always_all_codepages:true, + has_localenames:true, + has_fast_cwd:true, + has_restricted_raw_disk_access:true, + use_dont_resolve_hack:false, + has_console_logon_sid:true, + wow64_has_secondary_stack:false, + has_program_compatibility_assistant:true, + has_pipe_reject_remote_clients:true, + terminate_thread_frees_stack:true, + has_precise_system_time:true, + has_microsoft_accounts:true, +}; + +wincaps wincap_10 __attribute__((section (".cygwin_dll_common"), shared)) = { + max_sys_priv:SE_CREATE_SYMBOLIC_LINK_PRIVILEGE, + is_server:false, has_mandatory_integrity_control:true, needs_count_in_si_lpres2:false, has_recycle_dot_bin:true, @@ -202,13 +222,18 @@ wincapc::init () case 1: caps = &wincap_7; break; - default: + case 2: + case 3: caps = &wincap_8; break; + default: + caps = &wincap_10; + break; } break; + case 10: default: - caps = &wincap_minimal; + caps = &wincap_10; break; } diff --git a/winsup/cygwin/wincap.h b/winsup/cygwin/wincap.h index 43c72b648..b41a2c625 100644 --- a/winsup/cygwin/wincap.h +++ b/winsup/cygwin/wincap.h @@ -16,7 +16,6 @@ struct wincaps { DWORD max_sys_priv; unsigned is_server : 1; - unsigned has_physical_mem_access : 1; unsigned has_mandatory_integrity_control : 1; unsigned needs_count_in_si_lpres2 : 1; unsigned has_recycle_dot_bin : 1; @@ -67,7 +66,6 @@ public: DWORD IMPLEMENT (max_sys_priv) bool IMPLEMENT (is_server) - bool IMPLEMENT (has_physical_mem_access) bool IMPLEMENT (has_mandatory_integrity_control) bool IMPLEMENT (needs_count_in_si_lpres2) bool IMPLEMENT (has_recycle_dot_bin)