Corinna Vinschen 38fd7ddb79 Allow sysconf to return CPU cache information
* include/sys/unistd.h (_SC_LEVEL*): Add cache-related variables as
        on Linux.

        * fhandler_proc.cc (format_proc_cpuinfo): Fetch cache information
        from new cache functions in sysconf.cc, get_cpu_cache_intel and
        get_cpu_cache_amd.
        * sysconf.cc (__nt_query_system): New local helper.
        (get_nproc_values): Utilize __nt_query_system on pre-Windows 7 systems.
        Use GetLogicalProcessorInformationEx otherwise to handle more than
        64 CPUs.  Only handle _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN.
        (get_phys_pages): New helper to handle _SC_PHYS_PAGES.
        (cpuid2_cache_descriptor): New array to map Intel CPUID 2 descriptor
        values to cache type, cache size, associativity and linesize.
        (cpuid2_cache_desc_compar): Comparision function for bsearch over
        cpuid2_cache_descriptor.
        (get_cpu_cache_intel_cpuid2): New function to fetch cache info from
        Intel CPUID 2.
        (get_cpu_cache_intel_cpuid4): Ditto from Intel CPUID 4.
        (get_cpu_cache_intel): New function as CPU-specific entry point.
        (assoc): New array to map associativity values from AMD CPUID
        0x80000006.
        (get_cpu_cache_amd): New function to fetch cache info from AMD CPUIDs
        0x80000005 and 0x80000006.
        (get_cpu_cache): New function to fetch cache info.
        (sca): Call get_phys_pages if _SC_PHYS_PAGES is requested.  Call
        get_cpu_cache for new _SC_* cache requests.
        (SC_MAX): Set to _SC_LEVEL4_CACHE_LINESIZE.
        (get_phys_pages(void)): Call get_phys_pages(int).
        * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.

        * new-features.xml (ov-new2.3): Document sysconf cache addition.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-08-29 09:16:47 +02:00
..
2012-02-05 14:27:25 +00:00
2012-02-25 10:48:35 +00:00
2012-03-30 13:27:38 +00:00
2012-04-05 14:23:06 +00:00
2012-04-25 07:33:03 +00:00
2012-05-07 15:05:56 +00:00
2012-07-19 09:43:56 +00:00
2012-10-16 12:02:42 +00:00
.
2013-04-01 11:04:41 +00:00
2013-06-05 07:21:56 +00:00
2013-06-06 15:31:15 +00:00
2013-07-15 10:04:03 +00:00
2013-07-31 10:32:46 +00:00
2013-08-30 21:42:40 +00:00
2013-12-08 13:38:27 +00:00
2014-01-27 21:25:39 +00:00
2014-04-07 11:41:49 +00:00
2014-05-23 07:15:30 +00:00
2014-07-18 12:28:00 +00:00
2015-02-04 11:03:36 +00:00
2015-04-23 22:04:59 +02:00
2015-04-30 17:53:15 +02:00
2015-06-03 13:38:19 +02:00