Add cache related sysconf queries

Several cache related queries are added, such as
_SC_LEVEL1_DCACHE_LINESIZE, _SC_LEVEL1_DCACHE_SIZE and etc. For the
moment, we always return 0 for these queries.

Change-Id: I36f67af8128672d8c1eef49d6f2431cca5a94719
This commit is contained in:
Tao Bao 2014-12-04 15:24:28 -08:00
parent 6bec3484ee
commit 1f40be97b1
2 changed files with 34 additions and 0 deletions

View File

@ -178,6 +178,24 @@ long sysconf(int name) {
case _SC_XOPEN_STREAMS: return -1; // Obsolescent in POSIX.1-2008.
case _SC_XOPEN_UUCP: return -1;
// We do not have actual implementations for cache queries.
// It's valid to return 0 as the result is unknown.
case _SC_LEVEL1_ICACHE_SIZE: return 0;
case _SC_LEVEL1_ICACHE_ASSOC: return 0;
case _SC_LEVEL1_ICACHE_LINESIZE: return 0;
case _SC_LEVEL1_DCACHE_SIZE: return 0;
case _SC_LEVEL1_DCACHE_ASSOC: return 0;
case _SC_LEVEL1_DCACHE_LINESIZE: return 0;
case _SC_LEVEL2_CACHE_SIZE: return 0;
case _SC_LEVEL2_CACHE_ASSOC: return 0;
case _SC_LEVEL2_CACHE_LINESIZE: return 0;
case _SC_LEVEL3_CACHE_SIZE: return 0;
case _SC_LEVEL3_CACHE_ASSOC: return 0;
case _SC_LEVEL3_CACHE_LINESIZE: return 0;
case _SC_LEVEL4_CACHE_SIZE: return 0;
case _SC_LEVEL4_CACHE_ASSOC: return 0;
case _SC_LEVEL4_CACHE_LINESIZE: return 0;
default:
// Posix says EINVAL is the only error that shall be returned,
// but glibc uses ENOSYS.

View File

@ -172,6 +172,22 @@ __BEGIN_DECLS
#define _SC_XOPEN_STREAMS 0x008d
#define _SC_XOPEN_UUCP 0x008e
#define _SC_LEVEL1_ICACHE_SIZE 0x008f
#define _SC_LEVEL1_ICACHE_ASSOC 0x0090
#define _SC_LEVEL1_ICACHE_LINESIZE 0x0091
#define _SC_LEVEL1_DCACHE_SIZE 0x0092
#define _SC_LEVEL1_DCACHE_ASSOC 0x0093
#define _SC_LEVEL1_DCACHE_LINESIZE 0x0094
#define _SC_LEVEL2_CACHE_SIZE 0x0095
#define _SC_LEVEL2_CACHE_ASSOC 0x0096
#define _SC_LEVEL2_CACHE_LINESIZE 0x0097
#define _SC_LEVEL3_CACHE_SIZE 0x0098
#define _SC_LEVEL3_CACHE_ASSOC 0x0099
#define _SC_LEVEL3_CACHE_LINESIZE 0x009a
#define _SC_LEVEL4_CACHE_SIZE 0x009b
#define _SC_LEVEL4_CACHE_ASSOC 0x009c
#define _SC_LEVEL4_CACHE_LINESIZE 0x009d
long sysconf(int);
__END_DECLS