diff options
author | Elliott Hughes <enh@google.com> | 2014-09-18 16:11:59 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-09-19 17:37:06 -0700 |
commit | 04303f5a8ab9a992f3671d46b6ee2171582cbd61 (patch) | |
tree | 98d3997d33e93eeb91a2c2f331b57f35c180cbb2 /libc/bionic/sysconf.cpp | |
parent | adc01348ee51a4ad678b1c277f85cbbed5c2e728 (diff) | |
download | android_bionic-04303f5a8ab9a992f3671d46b6ee2171582cbd61.tar.gz android_bionic-04303f5a8ab9a992f3671d46b6ee2171582cbd61.tar.bz2 android_bionic-04303f5a8ab9a992f3671d46b6ee2171582cbd61.zip |
Add semaphore tests, fix sem_destroy.
Bug: https://code.google.com/p/android/issues/detail?id=76088
Change-Id: I4a0561b23e90312384d40a1c804ca64ee98f4066
Diffstat (limited to 'libc/bionic/sysconf.cpp')
-rw-r--r-- | libc/bionic/sysconf.cpp | 133 |
1 files changed, 24 insertions, 109 deletions
diff --git a/libc/bionic/sysconf.cpp b/libc/bionic/sysconf.cpp index d8aac4fe0..24a1ae7dd 100644 --- a/libc/bionic/sysconf.cpp +++ b/libc/bionic/sysconf.cpp @@ -49,7 +49,6 @@ #define SYSTEM_MQ_OPEN_MAX 8 #define SYSTEM_MQ_PRIO_MAX 32768 #define SYSTEM_SEM_NSEMS_MAX 256 -#define SYSTEM_SEM_VALUE_MAX 0x3fffffff /* see bionic/semaphore.c */ #define SYSTEM_SIGQUEUE_MAX 32 #define SYSTEM_TIMER_MAX 32 #define SYSTEM_LOGIN_NAME_MAX 256 @@ -151,33 +150,17 @@ static int __sysconf_monotonic_clock() { } int sysconf(int name) { - switch (name) { -#ifdef _POSIX_ARG_MAX + switch (name) { case _SC_ARG_MAX: return _POSIX_ARG_MAX; -#endif -#ifdef _POSIX2_BC_BASE_MAX case _SC_BC_BASE_MAX: return _POSIX2_BC_BASE_MAX; -#endif -#ifdef _POSIX2_BC_DIM_MAX case _SC_BC_DIM_MAX: return _POSIX2_BC_DIM_MAX; -#endif -#ifdef _POSIX2_BC_SCALE_MAX case _SC_BC_SCALE_MAX: return _POSIX2_BC_SCALE_MAX; -#endif -#ifdef _POSIX2_BC_STRING_MAX case _SC_BC_STRING_MAX: return _POSIX2_BC_STRING_MAX; -#endif case _SC_CHILD_MAX: return CHILD_MAX; case _SC_CLK_TCK: return SYSTEM_CLK_TCK; -#ifdef _POSIX2_COLL_WEIGHTS_MASK - case _SC_COLL_WEIGHTS_MAX: return _POSIX2_COLL_WEIGHTS_MASK; -#endif -#ifdef _POSIX2_EXPR_NEST_MAX - case _SC_EXPR_NEST_MAX: return _POSIX2_EXPR_NEST_MAX; -#endif -#ifdef _POSIX2_LINE_MAX + case _SC_COLL_WEIGHTS_MAX: return _POSIX2_COLL_WEIGHTS_MAX; + case _SC_EXPR_NEST_MAX: return _POSIX2_EXPR_NEST_MAX; case _SC_LINE_MAX: return _POSIX2_LINE_MAX; -#endif case _SC_NGROUPS_MAX: return NGROUPS_MAX; case _SC_OPEN_MAX: return OPEN_MAX; //case _SC_PASS_MAX: return PASS_MAX; @@ -191,42 +174,20 @@ int sysconf(int name) { case _SC_2_SW_DEV: return SYSTEM_2_SW_DEV; case _SC_2_UPE: return SYSTEM_2_UPE; case _SC_2_VERSION: return SYSTEM_2_VERSION; -#ifdef _POSIX_JOB_CONTROL case _SC_JOB_CONTROL: return _POSIX_JOB_CONTROL; -#endif -#ifdef _POSIX_SAVED_IDS case _SC_SAVED_IDS: return _POSIX_SAVED_IDS; -#endif -#ifdef _POSIX_VERSION case _SC_VERSION: return _POSIX_VERSION; -#endif - //case _SC_RE_DUP_<AX: return ; + case _SC_RE_DUP_MAX: return _POSIX_RE_DUP_MAX; case _SC_STREAM_MAX: return FOPEN_MAX; - //case _SC_TZNAME_MAX: return ; -#if _XOPEN_CRYPT + case _SC_TZNAME_MAX: return _POSIX_TZNAME_MAX; case _SC_XOPEN_CRYPT: return _XOPEN_CRYPT; -#endif -#ifdef _XOPEN_ENH_I18N case _SC_XOPEN_ENH_I18N: return _XOPEN_ENH_I18N; -#endif -#ifdef _XOPEN_SHM - case _SC_XOPEN_SHM: return _XOPEN_SHM; -#endif -#ifdef _XOPEN_VERSION + //case _SC_XOPEN_SHM: return _XOPEN_SHM; case _SC_XOPEN_VERSION: return _XOPEN_VERSION; -#endif -#ifdef _XOPEN_XCU_VERSION case _SC_XOPEN_XCU_VERSION: return _XOPEN_XCU_VERSION; -#endif -#ifdef _XOPEN_REALTIME case _SC_XOPEN_REALTIME: return _XOPEN_REALTIME; -#endif -#ifdef _XOPEN_REALTIME_THREADS case _SC_XOPEN_REALTIME_THREADS: return _XOPEN_REALTIME_THREADS; -#endif -#ifdef _XOPEN_LEGACY case _SC_XOPEN_LEGACY: return _XOPEN_LEGACY; -#endif case _SC_ATEXIT_MAX: return SYSTEM_ATEXIT_MAX; case _SC_IOV_MAX: return SYSTEM_IOV_MAX; @@ -234,71 +195,35 @@ int sysconf(int name) { case _SC_PAGE_SIZE: return PAGE_SIZE; -#ifdef _XOPEN_UNIX case _SC_XOPEN_UNIX: return _XOPEN_UNIX; -#endif // XXX: TODO: XBS5 nonsense -#ifdef AIO_LISTIO_MAX - case _SC_AIO_LISTIO_MAX: return AIO_LISTIO_MAX; -#endif -#ifdef AIO_MAX - case _SC_AIO_MAX: return AIO_MAX; -#endif -#ifdef AIO_PRIO_DELTA_MAX - case _SC_AIO_PRIO_DELTA_MAX: return AIO_PRIO_DELTA_MAX; -#endif + //case _SC_AIO_LISTIO_MAX: return AIO_LISTIO_MAX; + //case _SC_AIO_MAX: return AIO_MAX; + //case _SC_AIO_PRIO_DELTA_MAX: return AIO_PRIO_DELTA_MAX; case _SC_DELAYTIMER_MAX: return SYSTEM_DELAYTIMER_MAX; case _SC_MQ_OPEN_MAX: return SYSTEM_MQ_OPEN_MAX; case _SC_MQ_PRIO_MAX: return SYSTEM_MQ_PRIO_MAX; case _SC_RTSIG_MAX: return RTSIG_MAX; case _SC_SEM_NSEMS_MAX: return SYSTEM_SEM_NSEMS_MAX; - case _SC_SEM_VALUE_MAX: return SYSTEM_SEM_VALUE_MAX; + case _SC_SEM_VALUE_MAX: return SEM_VALUE_MAX; case _SC_SIGQUEUE_MAX: return SYSTEM_SIGQUEUE_MAX; case _SC_TIMER_MAX: return SYSTEM_TIMER_MAX; -#ifdef _POSIX_ASYNCHRONOUS_IO - case _SC_ASYNCHRONOUS_IO: return _POSIX_ASYNCHRONOUS_IO; -#endif -#ifdef _POSIX_FSYNC + //case _SC_ASYNCHRONOUS_IO: return _POSIX_ASYNCHRONOUS_IO; case _SC_FSYNC: return _POSIX_FSYNC; -#endif -#ifdef _POSIX_MAPPED_FILES case _SC_MAPPED_FILES: return _POSIX_MAPPED_FILES; -#endif -#ifdef _POSIX_MEMLOCK - case _SC_MEMLOCK: return _POSIX_MEMLOCK; -#endif -#ifdef _POSIX_MEMLOCK_RANGE - case _SC_MEMLOCK_RANGE: return _POSIX_MEMLOCK_RANGE -#endif -#ifdef _POSIX_MEMORY_PROTECTION - case _SC_MEMORY_PROTECTION: return _POSIX_MEMORY_PROTECTION; -#endif -#ifdef _POSIX_MESSAGE_PASSING - case _SC_MESSAGE_PASSING: return _POSIX_MESSAGE_PASSING; -#endif -#ifdef _POSIX_PRIORITIZED_IO - case _SC_PRIORITIZED_IO: return _POSIX_PRIORITIZED_IO; -#endif -#ifdef _POSIX_PRIORITY_SCHEDULING + //case _SC_MEMLOCK: return _POSIX_MEMLOCK; + //case _SC_MEMLOCK_RANGE: return _POSIX_MEMLOCK_RANGE; + //case _SC_MEMORY_PROTECTION: return _POSIX_MEMORY_PROTECTION; + //case _SC_MESSAGE_PASSING: return _POSIX_MESSAGE_PASSING; + //case _SC_PRIORITIZED_IO: return _POSIX_PRIORITIZED_IO; case _SC_PRIORITY_SCHEDULING: return _POSIX_PRIORITY_SCHEDULING; -#endif -#ifdef _POSIX_REALTIME_SIGNALS case _SC_REALTIME_SIGNALS: return _POSIX_REALTIME_SIGNALS; -#endif -#ifdef _POSIX_SEMAPHORES case _SC_SEMAPHORES: return _POSIX_SEMAPHORES; -#endif -#ifdef _POSIX_SHARED_MEMORY_OBJECTS - case _SC_SHARED_MEMORY_OBJECTS: return _POSIX_SHARED_MEMORY_OBJECTS; -#endif -#ifdef _POSIX_SYNCHRONIZED_IO + //case _SC_SHARED_MEMORY_OBJECTS: return _POSIX_SHARED_MEMORY_OBJECTS; case _SC_SYNCHRONIZED_IO: return _POSIX_SYNCHRONIZED_IO; -#endif -#ifdef _POSIX_TIMERS case _SC_TIMERS: return _POSIX_TIMERS; -#endif case _SC_GETGR_R_SIZE_MAX: return 1024; case _SC_GETPW_R_SIZE_MAX: return 1024; @@ -314,25 +239,15 @@ int sysconf(int name) { case _SC_THREAD_STACK_MIN: return PTHREAD_STACK_MIN; case _SC_THREAD_THREADS_MAX: return SYSTEM_THREAD_THREADS_MAX; case _SC_TTY_NAME_MAX: return SYSTEM_TTY_NAME_MAX; -#ifdef _POSIX_THREADS case _SC_THREADS: return _POSIX_THREADS; -#endif case _SC_THREAD_ATTR_STACKADDR: return -1; // Removed in POSIX 2008 case _SC_THREAD_ATTR_STACKSIZE: return -1; // Removed in POSIX 2008 -#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING - case _SC_THREAD_PRIORITY_SCHEDULING: return _POSIX_THREAD_PRIORITY_SCHEDULING; -#endif -#ifdef _POSIX_THREAD_PRIO_INHERIT + //case _SC_THREAD_PRIORITY_SCHEDULING: return _POSIX_THREAD_PRIORITY_SCHEDULING; case _SC_THREAD_PRIO_INHERIT: return _POSIX_THREAD_PRIO_INHERIT; -#endif -#ifdef _POSIX_THREAD_PRIO_PROTECT case _SC_THREAD_PRIO_PROTECT: return _POSIX_THREAD_PRIO_PROTECT; -#endif -#ifdef _POSIX_THREAD_SAFE_FUNCTIONS - case _SC_THREAD_SAFE_FUNCTIONS: return _POSIX_THREAD_SAFE_FUNCTIONS -#endif + //case _SC_THREAD_SAFE_FUNCTIONS: return _POSIX_THREAD_SAFE_FUNCTIONS case _SC_MONOTONIC_CLOCK: return __sysconf_monotonic_clock(); case _SC_NPROCESSORS_CONF: return __sysconf_nprocessors_conf(); @@ -341,9 +256,9 @@ int sysconf(int name) { case _SC_AVPHYS_PAGES: return __sysconf_avphys_pages(); default: - /* Posix says EINVAL is the only error that shall be returned, - * but GLibc uses ENOSYS */ - errno = ENOSYS; - return -1; - } + // Posix says EINVAL is the only error that shall be returned, + // but glibc uses ENOSYS. + errno = ENOSYS; + return -1; + } } |