Cygwin: drop support for systems not supporting processor groups
i. e., Vista/2008. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
4bc8f1adb4
commit
687c4bad28
|
@ -665,26 +665,15 @@ format_proc_cpuinfo (void *, char *&destbuf)
|
||||||
|
|
||||||
WORD cpu_group = cpu_number / num_cpu_per_group;
|
WORD cpu_group = cpu_number / num_cpu_per_group;
|
||||||
KAFFINITY cpu_mask = 1L << (cpu_number % num_cpu_per_group);
|
KAFFINITY cpu_mask = 1L << (cpu_number % num_cpu_per_group);
|
||||||
|
GROUP_AFFINITY affinity = {
|
||||||
|
.Mask = cpu_mask,
|
||||||
|
.Group = cpu_group,
|
||||||
|
};
|
||||||
|
|
||||||
if (wincap.has_processor_groups ())
|
if (!SetThreadGroupAffinity (GetCurrentThread (), &affinity,
|
||||||
{
|
&orig_group_affinity))
|
||||||
GROUP_AFFINITY affinity = {
|
system_printf ("SetThreadGroupAffinity(%x,%d (%x/%d)) failed %E", cpu_mask, cpu_group, cpu_number, cpu_number);
|
||||||
.Mask = cpu_mask,
|
orig_affinity_mask = 1; /* Just mark success. */
|
||||||
.Group = cpu_group,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!SetThreadGroupAffinity (GetCurrentThread (), &affinity,
|
|
||||||
&orig_group_affinity))
|
|
||||||
system_printf ("SetThreadGroupAffinity(%x,%d (%x/%d)) failed %E", cpu_mask, cpu_group, cpu_number, cpu_number);
|
|
||||||
orig_affinity_mask = 1; /* Just mark success. */
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
orig_affinity_mask = SetThreadAffinityMask (GetCurrentThread (),
|
|
||||||
1 << cpu_number);
|
|
||||||
if (orig_affinity_mask == 0)
|
|
||||||
debug_printf ("SetThreadAffinityMask failed %E");
|
|
||||||
}
|
|
||||||
/* I'm not sure whether the thread changes processor immediately
|
/* I'm not sure whether the thread changes processor immediately
|
||||||
and I'm not sure whether this function will cause the thread
|
and I'm not sure whether this function will cause the thread
|
||||||
to be rescheduled */
|
to be rescheduled */
|
||||||
|
@ -1668,13 +1657,8 @@ format_proc_cpuinfo (void *, char *&destbuf)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (orig_affinity_mask != 0)
|
if (orig_affinity_mask != 0)
|
||||||
{
|
SetThreadGroupAffinity (GetCurrentThread (), &orig_group_affinity,
|
||||||
if (wincap.has_processor_groups ())
|
NULL);
|
||||||
SetThreadGroupAffinity (GetCurrentThread (), &orig_group_affinity,
|
|
||||||
NULL);
|
|
||||||
else
|
|
||||||
SetThreadAffinityMask (GetCurrentThread (), orig_affinity_mask);
|
|
||||||
}
|
|
||||||
print ("\n");
|
print ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1047,11 +1047,9 @@ __get_cpus_per_group (void)
|
||||||
(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX) tp.c_get ();
|
(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX) tp.c_get ();
|
||||||
DWORD lpi_size = NT_MAX_PATH;
|
DWORD lpi_size = NT_MAX_PATH;
|
||||||
|
|
||||||
/* Fake a SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX group info block on Vista
|
/* Fake a SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX group info block if
|
||||||
systems. This may be over the top but if the below code just using
|
GetLogicalProcessorInformationEx fails for some reason. */
|
||||||
ActiveProcessorCount turns out to be insufficient, we can build on that. */
|
if (!GetLogicalProcessorInformationEx (RelationGroup, lpi, &lpi_size))
|
||||||
if (!wincap.has_processor_groups ()
|
|
||||||
|| !GetLogicalProcessorInformationEx (RelationGroup, lpi, &lpi_size))
|
|
||||||
{
|
{
|
||||||
lpi_size = sizeof *lpi;
|
lpi_size = sizeof *lpi;
|
||||||
lpi->Relationship = RelationGroup;
|
lpi->Relationship = RelationGroup;
|
||||||
|
|
|
@ -416,9 +416,6 @@ EXPORT_ALIAS (sched_yield, pthread_yield)
|
||||||
int
|
int
|
||||||
sched_getcpu ()
|
sched_getcpu ()
|
||||||
{
|
{
|
||||||
if (!wincap.has_processor_groups ())
|
|
||||||
return (int) GetCurrentProcessorNumber ();
|
|
||||||
|
|
||||||
PROCESSOR_NUMBER pnum;
|
PROCESSOR_NUMBER pnum;
|
||||||
|
|
||||||
GetCurrentProcessorNumberEx (&pnum);
|
GetCurrentProcessorNumberEx (&pnum);
|
||||||
|
@ -520,33 +517,18 @@ whichgroup (size_t sizeof_set, const cpu_set_t *set)
|
||||||
int
|
int
|
||||||
sched_get_thread_affinity (HANDLE thread, size_t sizeof_set, cpu_set_t *set)
|
sched_get_thread_affinity (HANDLE thread, size_t sizeof_set, cpu_set_t *set)
|
||||||
{
|
{
|
||||||
|
GROUP_AFFINITY ga;
|
||||||
int status = 0;
|
int status = 0;
|
||||||
|
|
||||||
if (thread)
|
if (thread)
|
||||||
{
|
{
|
||||||
memset (set, 0, sizeof_set);
|
memset (set, 0, sizeof_set);
|
||||||
if (wincap.has_processor_groups () && __get_group_count () > 1)
|
if (!GetThreadGroupAffinity (thread, &ga))
|
||||||
{
|
{
|
||||||
GROUP_AFFINITY ga;
|
status = geterrno_from_win_error (GetLastError (), EPERM);
|
||||||
|
goto done;
|
||||||
if (!GetThreadGroupAffinity (thread, &ga))
|
|
||||||
{
|
|
||||||
status = geterrno_from_win_error (GetLastError (), EPERM);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
setgroup (sizeof_set, set, ga.Group, ga.Mask);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
THREAD_BASIC_INFORMATION tbi;
|
|
||||||
|
|
||||||
status = NtQueryInformationThread (thread, ThreadBasicInformation,
|
|
||||||
&tbi, sizeof (tbi), NULL);
|
|
||||||
if (NT_SUCCESS (status))
|
|
||||||
setgroup (sizeof_set, set, 0, tbi.AffinityMask);
|
|
||||||
else
|
|
||||||
status = geterrno_from_nt_status (status);
|
|
||||||
}
|
}
|
||||||
|
setgroup (sizeof_set, set, ga.Group, ga.Mask);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
status = ESRCH;
|
status = ESRCH;
|
||||||
|
@ -570,6 +552,8 @@ __sched_getaffinity_sys (pid_t pid, size_t sizeof_set, cpu_set_t *set)
|
||||||
p->dwProcessId) : GetCurrentProcess ();
|
p->dwProcessId) : GetCurrentProcess ();
|
||||||
KAFFINITY procmask;
|
KAFFINITY procmask;
|
||||||
KAFFINITY sysmask;
|
KAFFINITY sysmask;
|
||||||
|
USHORT groupcount = __CPU_GROUPMAX;
|
||||||
|
USHORT grouparray[__CPU_GROUPMAX];
|
||||||
|
|
||||||
if (!GetProcessAffinityMask (process, &procmask, &sysmask))
|
if (!GetProcessAffinityMask (process, &procmask, &sysmask))
|
||||||
{
|
{
|
||||||
|
@ -577,23 +561,15 @@ __sched_getaffinity_sys (pid_t pid, size_t sizeof_set, cpu_set_t *set)
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
memset (set, 0, sizeof_set);
|
memset (set, 0, sizeof_set);
|
||||||
if (wincap.has_processor_groups () && __get_group_count () > 1)
|
if (!GetProcessGroupAffinity (process, &groupcount, grouparray))
|
||||||
{
|
{
|
||||||
USHORT groupcount = __CPU_GROUPMAX;
|
status = geterrno_from_win_error (GetLastError (), EPERM);
|
||||||
USHORT grouparray[__CPU_GROUPMAX];
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
if (!GetProcessGroupAffinity (process, &groupcount, grouparray))
|
KAFFINITY miscmask = groupmask (__get_cpus_per_group ());
|
||||||
{
|
for (int i = 0; i < groupcount; i++)
|
||||||
status = geterrno_from_win_error (GetLastError (), EPERM);
|
setgroup (sizeof_set, set, grouparray[i], miscmask);
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
KAFFINITY miscmask = groupmask (__get_cpus_per_group ());
|
|
||||||
for (int i = 0; i < groupcount; i++)
|
|
||||||
setgroup (sizeof_set, set, grouparray[i], miscmask);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
setgroup (sizeof_set, set, 0, procmask);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
status = ESRCH;
|
status = ESRCH;
|
||||||
|
@ -625,41 +601,24 @@ sched_getaffinity (pid_t pid, size_t sizeof_set, cpu_set_t *set)
|
||||||
int
|
int
|
||||||
sched_set_thread_affinity (HANDLE thread, size_t sizeof_set, const cpu_set_t *set)
|
sched_set_thread_affinity (HANDLE thread, size_t sizeof_set, const cpu_set_t *set)
|
||||||
{
|
{
|
||||||
|
GROUP_AFFINITY ga;
|
||||||
int group = whichgroup (sizeof_set, set);
|
int group = whichgroup (sizeof_set, set);
|
||||||
int status = 0;
|
int status = 0;
|
||||||
|
|
||||||
if (thread)
|
if (thread)
|
||||||
{
|
{
|
||||||
if (wincap.has_processor_groups () && __get_group_count () > 1)
|
if (group < 0)
|
||||||
{
|
{
|
||||||
GROUP_AFFINITY ga;
|
status = EINVAL;
|
||||||
|
goto done;
|
||||||
if (group < 0)
|
|
||||||
{
|
|
||||||
status = EINVAL;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
memset (&ga, 0, sizeof (ga));
|
|
||||||
ga.Mask = getgroup (sizeof_set, set, group);
|
|
||||||
ga.Group = group;
|
|
||||||
if (!SetThreadGroupAffinity (thread, &ga, NULL))
|
|
||||||
{
|
|
||||||
status = geterrno_from_win_error (GetLastError (), EPERM);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
memset (&ga, 0, sizeof (ga));
|
||||||
|
ga.Mask = getgroup (sizeof_set, set, group);
|
||||||
|
ga.Group = group;
|
||||||
|
if (!SetThreadGroupAffinity (thread, &ga, NULL))
|
||||||
{
|
{
|
||||||
if (group != 0)
|
status = geterrno_from_win_error (GetLastError (), EPERM);
|
||||||
{
|
goto done;
|
||||||
status = EINVAL;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
if (!SetThreadAffinityMask (thread, getgroup (sizeof_set, set, 0)))
|
|
||||||
{
|
|
||||||
status = geterrno_from_win_error (GetLastError (), EPERM);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -672,6 +631,8 @@ done:
|
||||||
int
|
int
|
||||||
sched_setaffinity (pid_t pid, size_t sizeof_set, const cpu_set_t *set)
|
sched_setaffinity (pid_t pid, size_t sizeof_set, const cpu_set_t *set)
|
||||||
{
|
{
|
||||||
|
USHORT groupcount = __CPU_GROUPMAX;
|
||||||
|
USHORT grouparray[__CPU_GROUPMAX];
|
||||||
int group = whichgroup (sizeof_set, set);
|
int group = whichgroup (sizeof_set, set);
|
||||||
HANDLE process = 0;
|
HANDLE process = 0;
|
||||||
int status = 0;
|
int status = 0;
|
||||||
|
@ -682,49 +643,30 @@ sched_setaffinity (pid_t pid, size_t sizeof_set, const cpu_set_t *set)
|
||||||
process = pid && pid != myself->pid ?
|
process = pid && pid != myself->pid ?
|
||||||
OpenProcess (PROCESS_SET_INFORMATION, FALSE,
|
OpenProcess (PROCESS_SET_INFORMATION, FALSE,
|
||||||
p->dwProcessId) : GetCurrentProcess ();
|
p->dwProcessId) : GetCurrentProcess ();
|
||||||
if (wincap.has_processor_groups () && __get_group_count () > 1)
|
if (!GetProcessGroupAffinity (process, &groupcount, grouparray))
|
||||||
|
{
|
||||||
|
status = geterrno_from_win_error (GetLastError (), EPERM);
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
if (group < 0)
|
||||||
{
|
{
|
||||||
USHORT groupcount = __CPU_GROUPMAX;
|
|
||||||
USHORT grouparray[__CPU_GROUPMAX];
|
|
||||||
|
|
||||||
if (!GetProcessGroupAffinity (process, &groupcount, grouparray))
|
|
||||||
{
|
|
||||||
status = geterrno_from_win_error (GetLastError (), EPERM);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
if (group < 0)
|
|
||||||
{
|
|
||||||
status = EINVAL;
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
if (groupcount == 1 && grouparray[0] == group)
|
|
||||||
{
|
|
||||||
if (!SetProcessAffinityMask (process, getgroup (sizeof_set, set, group)))
|
|
||||||
status = geterrno_from_win_error (GetLastError (), EPERM);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If we get here, the user is trying to add the process to another
|
|
||||||
group or move it from current group to another group. These ops
|
|
||||||
are not allowed by Windows. One has to move one or more of the
|
|
||||||
process' threads to the new group(s) one by one. Here, we bail.
|
|
||||||
*/
|
|
||||||
status = EINVAL;
|
status = EINVAL;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
else
|
if (groupcount == 1 && grouparray[0] == group)
|
||||||
{
|
{
|
||||||
if (group != 0)
|
if (!SetProcessAffinityMask (process, getgroup (sizeof_set, set, group)))
|
||||||
{
|
status = geterrno_from_win_error (GetLastError (), EPERM);
|
||||||
status = EINVAL;
|
goto done;
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
if (!SetProcessAffinityMask (process, getgroup (sizeof_set, set, 0)))
|
|
||||||
{
|
|
||||||
status = geterrno_from_win_error (GetLastError (), EPERM);
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we get here, the user is trying to add the process to another
|
||||||
|
group or move it from current group to another group. These ops
|
||||||
|
are not allowed by Windows. One has to move one or more of the
|
||||||
|
process' threads to the new group(s) one by one. Here, we bail.
|
||||||
|
*/
|
||||||
|
status = EINVAL;
|
||||||
|
goto done;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
status = ESRCH;
|
status = ESRCH;
|
||||||
|
|
|
@ -42,28 +42,6 @@ __nt_query_system (PSYSTEM_BASIC_INFORMATION psbi)
|
||||||
static long
|
static long
|
||||||
get_nproc_values (int in)
|
get_nproc_values (int in)
|
||||||
{
|
{
|
||||||
if (!wincap.has_processor_groups ()) /* Pre Windows 7 */
|
|
||||||
{
|
|
||||||
SYSTEM_BASIC_INFORMATION sbi;
|
|
||||||
|
|
||||||
if (!__nt_query_system (&sbi))
|
|
||||||
return -1;
|
|
||||||
switch (in)
|
|
||||||
{
|
|
||||||
case _SC_NPROCESSORS_CONF:
|
|
||||||
return sbi.NumberProcessors;
|
|
||||||
case _SC_NPROCESSORS_ONLN:
|
|
||||||
{
|
|
||||||
int i = 0;
|
|
||||||
do
|
|
||||||
if (sbi.ActiveProcessors & 1)
|
|
||||||
i++;
|
|
||||||
while (sbi.ActiveProcessors >>= 1);
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tmp_pathbuf tp;
|
tmp_pathbuf tp;
|
||||||
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX lpi, plpi;
|
PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX lpi, plpi;
|
||||||
DWORD lpi_size = NT_MAX_PATH;
|
DWORD lpi_size = NT_MAX_PATH;
|
||||||
|
|
|
@ -28,7 +28,6 @@ wincaps wincap_vista __attribute__((section (".cygwin_dll_common"), shared)) = {
|
||||||
has_console_logon_sid:false,
|
has_console_logon_sid:false,
|
||||||
has_precise_system_time:false,
|
has_precise_system_time:false,
|
||||||
has_microsoft_accounts:false,
|
has_microsoft_accounts:false,
|
||||||
has_processor_groups:false,
|
|
||||||
has_broken_prefetchvm:false,
|
has_broken_prefetchvm:false,
|
||||||
has_new_pebteb_region:false,
|
has_new_pebteb_region:false,
|
||||||
has_broken_whoami:true,
|
has_broken_whoami:true,
|
||||||
|
@ -61,7 +60,6 @@ wincaps wincap_7 __attribute__((section (".cygwin_dll_common"), shared)) = {
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:false,
|
has_precise_system_time:false,
|
||||||
has_microsoft_accounts:false,
|
has_microsoft_accounts:false,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:false,
|
has_broken_prefetchvm:false,
|
||||||
has_new_pebteb_region:false,
|
has_new_pebteb_region:false,
|
||||||
has_broken_whoami:true,
|
has_broken_whoami:true,
|
||||||
|
@ -94,7 +92,6 @@ wincaps wincap_8 __attribute__((section (".cygwin_dll_common"), shared)) = {
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:true,
|
has_precise_system_time:true,
|
||||||
has_microsoft_accounts:true,
|
has_microsoft_accounts:true,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:false,
|
has_broken_prefetchvm:false,
|
||||||
has_new_pebteb_region:false,
|
has_new_pebteb_region:false,
|
||||||
has_broken_whoami:false,
|
has_broken_whoami:false,
|
||||||
|
@ -127,7 +124,6 @@ wincaps wincap_8_1 __attribute__((section (".cygwin_dll_common"), shared)) = {
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:true,
|
has_precise_system_time:true,
|
||||||
has_microsoft_accounts:true,
|
has_microsoft_accounts:true,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:false,
|
has_broken_prefetchvm:false,
|
||||||
has_new_pebteb_region:false,
|
has_new_pebteb_region:false,
|
||||||
has_broken_whoami:false,
|
has_broken_whoami:false,
|
||||||
|
@ -160,7 +156,6 @@ wincaps wincap_10_1507 __attribute__((section (".cygwin_dll_common"), shared))
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:true,
|
has_precise_system_time:true,
|
||||||
has_microsoft_accounts:true,
|
has_microsoft_accounts:true,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:true,
|
has_broken_prefetchvm:true,
|
||||||
has_new_pebteb_region:false,
|
has_new_pebteb_region:false,
|
||||||
has_broken_whoami:false,
|
has_broken_whoami:false,
|
||||||
|
@ -193,7 +188,6 @@ wincaps wincap_10_1607 __attribute__((section (".cygwin_dll_common"), shared))
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:true,
|
has_precise_system_time:true,
|
||||||
has_microsoft_accounts:true,
|
has_microsoft_accounts:true,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:true,
|
has_broken_prefetchvm:true,
|
||||||
has_new_pebteb_region:false,
|
has_new_pebteb_region:false,
|
||||||
has_broken_whoami:false,
|
has_broken_whoami:false,
|
||||||
|
@ -226,7 +220,6 @@ wincaps wincap_10_1703 __attribute__((section (".cygwin_dll_common"), shared)) =
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:true,
|
has_precise_system_time:true,
|
||||||
has_microsoft_accounts:true,
|
has_microsoft_accounts:true,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:false,
|
has_broken_prefetchvm:false,
|
||||||
has_new_pebteb_region:true,
|
has_new_pebteb_region:true,
|
||||||
has_broken_whoami:false,
|
has_broken_whoami:false,
|
||||||
|
@ -259,7 +252,6 @@ wincaps wincap_10_1709 __attribute__((section (".cygwin_dll_common"), shared)) =
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:true,
|
has_precise_system_time:true,
|
||||||
has_microsoft_accounts:true,
|
has_microsoft_accounts:true,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:false,
|
has_broken_prefetchvm:false,
|
||||||
has_new_pebteb_region:true,
|
has_new_pebteb_region:true,
|
||||||
has_broken_whoami:false,
|
has_broken_whoami:false,
|
||||||
|
@ -292,7 +284,6 @@ wincaps wincap_10_1803 __attribute__((section (".cygwin_dll_common"), shared)) =
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:true,
|
has_precise_system_time:true,
|
||||||
has_microsoft_accounts:true,
|
has_microsoft_accounts:true,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:false,
|
has_broken_prefetchvm:false,
|
||||||
has_new_pebteb_region:true,
|
has_new_pebteb_region:true,
|
||||||
has_broken_whoami:false,
|
has_broken_whoami:false,
|
||||||
|
@ -325,7 +316,6 @@ wincaps wincap_10_1809 __attribute__((section (".cygwin_dll_common"), shared)) =
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:true,
|
has_precise_system_time:true,
|
||||||
has_microsoft_accounts:true,
|
has_microsoft_accounts:true,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:false,
|
has_broken_prefetchvm:false,
|
||||||
has_new_pebteb_region:true,
|
has_new_pebteb_region:true,
|
||||||
has_broken_whoami:false,
|
has_broken_whoami:false,
|
||||||
|
@ -358,7 +348,6 @@ wincaps wincap_10_1903 __attribute__((section (".cygwin_dll_common"), shared)) =
|
||||||
has_console_logon_sid:true,
|
has_console_logon_sid:true,
|
||||||
has_precise_system_time:true,
|
has_precise_system_time:true,
|
||||||
has_microsoft_accounts:true,
|
has_microsoft_accounts:true,
|
||||||
has_processor_groups:true,
|
|
||||||
has_broken_prefetchvm:false,
|
has_broken_prefetchvm:false,
|
||||||
has_new_pebteb_region:true,
|
has_new_pebteb_region:true,
|
||||||
has_broken_whoami:false,
|
has_broken_whoami:false,
|
||||||
|
|
|
@ -22,7 +22,6 @@ struct wincaps
|
||||||
unsigned has_console_logon_sid : 1;
|
unsigned has_console_logon_sid : 1;
|
||||||
unsigned has_precise_system_time : 1;
|
unsigned has_precise_system_time : 1;
|
||||||
unsigned has_microsoft_accounts : 1;
|
unsigned has_microsoft_accounts : 1;
|
||||||
unsigned has_processor_groups : 1;
|
|
||||||
unsigned has_broken_prefetchvm : 1;
|
unsigned has_broken_prefetchvm : 1;
|
||||||
unsigned has_new_pebteb_region : 1;
|
unsigned has_new_pebteb_region : 1;
|
||||||
unsigned has_broken_whoami : 1;
|
unsigned has_broken_whoami : 1;
|
||||||
|
@ -87,7 +86,6 @@ public:
|
||||||
bool IMPLEMENT (has_console_logon_sid)
|
bool IMPLEMENT (has_console_logon_sid)
|
||||||
bool IMPLEMENT (has_precise_system_time)
|
bool IMPLEMENT (has_precise_system_time)
|
||||||
bool IMPLEMENT (has_microsoft_accounts)
|
bool IMPLEMENT (has_microsoft_accounts)
|
||||||
bool IMPLEMENT (has_processor_groups)
|
|
||||||
bool IMPLEMENT (has_broken_prefetchvm)
|
bool IMPLEMENT (has_broken_prefetchvm)
|
||||||
bool IMPLEMENT (has_new_pebteb_region)
|
bool IMPLEMENT (has_new_pebteb_region)
|
||||||
bool IMPLEMENT (has_broken_whoami)
|
bool IMPLEMENT (has_broken_whoami)
|
||||||
|
|
Loading…
Reference in New Issue