newlib-cygwin/winsup/cygwin/include
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
..
arpa
asm Define __s64 and __u64 2015-04-27 14:40:27 +02:00
attr
bits * Merge in cygwin-64bit-branch. 2013-04-23 09:44:36 +00:00
cygwin Allow sysconf to return CPU cache information 2015-08-29 09:16:47 +02:00
machine
net
netinet * include/netinet/ip6.h: New file, copied from FreeBSD vebatim. 2014-01-18 11:37:55 +00:00
sys Try to make sure struct _mcontext is 16-byte aligned 2015-04-23 21:57:11 +02:00
a.out.h * Merge in cygwin-64bit-branch. 2013-04-23 09:44:36 +00:00
byteswap.h
dlfcn.h
elf.h
endian.h
err.h
error.h
fcntl.h * include/fcntl.h: Move all open flags (except O_NDELAY) to newlib's 2014-11-25 11:42:20 +00:00
features.h
fenv.h
fnmatch.h
fts.h * Merge in cygwin-64bit-branch. 2013-04-23 09:44:36 +00:00
ftw.h * Merge in cygwin-64bit-branch. 2013-04-23 09:44:36 +00:00
getopt.h
glob.h * include/glob.h: Fix invalid use of 'restrict' error. 2013-11-28 10:00:01 +00:00
icmp.h
ifaddrs.h
io.h * Merge in cygwin-64bit-branch. 2013-04-23 09:44:36 +00:00
lastlog.h
limits.h * Merge in cygwin-64bit-branch. 2013-04-23 09:44:36 +00:00
mapi.h
memory.h
mntent.h * Merge in cygwin-64bit-branch. 2013-04-23 09:44:36 +00:00
monetary.h
mqueue.h
netdb.h * autoload.cc (IdnToAscii): Define. 2013-11-19 13:29:37 +00:00
paths.h
poll.h
process.h
pthread.h headers: properly decorate attributes 2014-08-01 15:48:37 +00:00
pty.h
regex.h
resolv.h
search.h
semaphore.h
sysexits.h
syslog.h
termio.h
tzfile.h
ucontext.h Implement getcontext, setcontext, makecontext, swapcontext 2015-07-17 14:31:12 +02:00
utmpx.h
wait.h