diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2002-04-04 22:41:11 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2002-04-04 22:41:11 +0000 |
commit | 6e6cd5bde6164914615f5e82a1b49ed5b2c25eb9 (patch) | |
tree | 04c16a09dc72fc5f5379865a9916b2ec8c8f4616 /newlib/libc/sys/linux/sysconf.c | |
parent | 244a8fae426a68ad51cd610cebd1361a834d676a (diff) | |
download | cygnal-6e6cd5bde6164914615f5e82a1b49ed5b2c25eb9.tar.gz cygnal-6e6cd5bde6164914615f5e82a1b49ed5b2c25eb9.tar.bz2 cygnal-6e6cd5bde6164914615f5e82a1b49ed5b2c25eb9.zip |
2002-04-04 Jeff Johnston <jjohnstn@redhat.com>
* Makefile.am: Add support for installing crt1.o if one exists.
* configure.host: Specify crt1.o for linux.
* configure.in: Expose CRT1 and CRT1_DIR for Makefile.am to use.
* Makefile.in: Regenerated.
* configure: Ditto.
* libc/include/sys/unistd.h (_SC_STREAM_MAX, _SC_PRIORITY_SCHEDULING):
Added for non-Cygwin, non-RTEMS configurations.
* libc/sys/linux/Makefile.am: Add support for crt1 and sysconf.
* libc/sys/linux/Makefile.in: Regenerated.
* libc/sys/linux/crt1.c: New empty file to override one defaulted
by gcc. This fixes problem with reconfiguring linux newlib build.
* libc/sys/linux/sysconf.c: New file.
Diffstat (limited to 'newlib/libc/sys/linux/sysconf.c')
-rw-r--r-- | newlib/libc/sys/linux/sysconf.c | 383 |
1 files changed, 383 insertions, 0 deletions
diff --git a/newlib/libc/sys/linux/sysconf.c b/newlib/libc/sys/linux/sysconf.c new file mode 100644 index 000000000..f953efe5d --- /dev/null +++ b/newlib/libc/sys/linux/sysconf.c @@ -0,0 +1,383 @@ +/* libc/sys/linux/sysconf.c - The sysconf function */ + +/* Copyright 2002, Red Hat Inc. */ + + +#include <unistd.h> +#include <limits.h> +#include <time.h> +#include <errno.h> +#include <sys/types.h> + +long int +sysconf (int name) +{ + switch (name) + { + case _SC_AIO_LISTIO_MAX: +#ifdef AIO_LISTIO_MAX + return AIO_LISTIO_MAX; +#else + return -1; +#endif + + case _SC_AIO_MAX: +#ifdef AIO_MAX + return AIO_MAX; +#else + return -1; +#endif + + case _SC_AIO_PRIO_DELTA_MAX: +#ifdef AIO_PRIO_DELTA_MAX + return AIO_PRIO_DELTA_MAX; +#else + return -1; +#endif + + case _SC_ARG_MAX: +#ifdef ARG_MAX + return ARG_MAX; +#else + return -1; +#endif + + case _SC_CHILD_MAX: +#ifdef CHILD_MAX + return CHILD_MAX; +#else + return -1; +#endif + + case _SC_CLK_TCK: + return CLK_TCK; + + case _SC_DELAYTIMER_MAX: +#ifdef DELAYTIMER_MAX + return DELAYTIMER_MAX; +#else + return -1; +#endif + + case _SC_GETGR_R_SIZE_MAX: +#ifdef _GETGR_R_SIZE_MAX + return _GETGR_R_SIZE_MAX; +#else + return -1; +#endif + + case _SC_GETPW_R_SIZE_MAX: +#ifdef _GETPW_R_SIZE_MAX + return _GETPW_R_SIZE_MAX; +#else + return -1; +#endif + + case _SC_LOGIN_NAME_MAX: +#ifdef LOGIN_NAME_MAX + return LOGIN_NAME_MAX; +#else + return -1; +#endif + + case _SC_MQ_OPEN_MAX: +#ifdef MQ_OPEN_MAX + return MQ_OPEN_MAX; +#else + return -1; +#endif + + case _SC_MQ_PRIO_MAX: +#ifdef MQ_PRIO_MAX + return MQ_PRIO_MAX; +#else + return -1; +#endif + + case _SC_NGROUPS_MAX: +#ifdef NGROUPS_MAX + return NGROUPS_MAX; +#else + return -1; +#endif + + case _SC_OPEN_MAX: +#ifdef OPEN_MAX + return OPEN_MAX; +#else + return -1; +#endif + + case _SC_PAGESIZE: +#ifdef PAGESIZE + return PAGESIZE; +#else + return -1; +#endif + + case _SC_RTSIG_MAX: +#ifdef RTSIG_MAX + return RTSIG_MAX; +#else + return -1; +#endif + + case _SC_SEM_NSEMS_MAX: +#ifdef SEM_NSEMS_MAX + return SEM_NSEMS_MAX; +#else + return -1; +#endif + + case _SC_SEM_VALUE_MAX: +#ifdef SEM_VALUE_MAX + return SEM_VALUE_MAX; +#else + return -1; +#endif + + case _SC_SIGQUEUE_MAX: +#ifdef SIGQUEUE_MAX + return SIGQUEUE_MAX; +#else + return -1; +#endif + + case _SC_STREAM_MAX: +#ifdef STREAM_MAX + return STREAM_MAX; +#else + return -1; +#endif + + case _SC_THREAD_DESTRUCTOR_ITERATIONS: +#ifdef PTHREAD_DESTRUCTOR_ITERATIONS + return PTHREAD_DESTRUCTOR_ITERATIONS; +#else + return -1; +#endif + + case _SC_THREAD_KEYS_MAX: +#ifdef PTHREAD_KEYS_MAX + return PTHREAD_KEYS_MAX; +#else + return -1; +#endif + + case _SC_THREAD_STACK_MIN: +#ifdef PTHREAD_STACK_MIN + return PTHREAD_STACK_MIN; +#else + return -1; +#endif + + case _SC_THREAD_THREADS_MAX: +#ifdef PTHREAD_THREADS_MAX + return PTHREAD_THREADS_MAX; +#else + return -1; +#endif + + case _SC_TIMER_MAX: +#ifdef TIMER_MAX + return TIMER_MAX; +#else + return -1; +#endif + + case _SC_TTY_NAME_MAX: +#ifdef TTY_NAME_MAX + return TTY_NAME_MAX; +#else + return -1; +#endif + + case _SC_TZNAME_MAX: +#ifdef TZNAME_MAX + return TZNAME_MAX; +#else + return -1; +#endif + + case _SC_ASYNCHRONOUS_IO: +#ifdef _POSIX_ASYNCHRONOUS_IO + return 1;TZNAME_MAX; +#else + return -1; +#endif + + case _SC_FSYNC: +#ifdef _POSIX_FSYNC + return 1; +#else + return -1; +#endif + + case _SC_JOB_CONTROL: +#ifdef _POSIX_JOB_CONTROL + return 1; +#else + return -1; +#endif + + case _SC_MAPPED_FILES: +#ifdef _POSIX_MAPPED_FILES + return 1; +#else + return -1; +#endif + + case _SC_MEMLOCK: +#ifdef _POSIX_MEMLOCK + return 1; +#else + return -1; +#endif + + case _SC_MEMLOCK_RANGE: +#ifdef _POSIX_MEMLOCK_RANGE + return _POSIX_MEMLOCK_RANGE; +#else + return -1; +#endif + + case _SC_MEMORY_PROTECTION: +#ifdef _POSIX_MEMORY_PROTECTION + return 1; +#else + return -1; +#endif + + case _SC_MESSAGE_PASSING: +#ifdef _POSIX_MESSAGE_PASSING + return 1; +#else + return -1; +#endif + + case _SC_PRIORITIZED_IO: +#ifdef _POSIX_PRIORITIZED_IO + return 1; +#else + return -1; +#endif + + case _SC_PRIORITY_SCHEDULING: +#ifdef _POSIX_PRIORITY_SCHEDULING + return 1; +#else + return -1; +#endif + + case _SC_REALTIME_SIGNALS: +#ifdef _POSIX_REALTIME_SIGNALS + return 1; +#else + return -1; +#endif + + case _SC_SAVED_IDS: +#ifdef _POSIX_SAVED_IDS + return 1; +#else + return -1; +#endif + + case _SC_SEMAPHORES: +#ifdef _POSIX_SEMAPHORES + return 1; +#else + return -1; +#endif + + case _SC_SHARED_MEMORY_OBJECTS: +#ifdef _POSIX_SHARED_MEMORY_OBJECTS + return 1; +#else + return -1; +#endif + + case _SC_SYNCHRONIZED_IO: +#ifdef _POSIX_SYNCHRONIZED_IO + return 1; +#else + return -1; +#endif + + case _SC_TIMERS: +#ifdef _POSIX_TIMERS + return 1; +#else + return -1; +#endif + + case _SC_THREADS: +#ifdef _POSIX_THREADS + return 1; +#else + return -1; +#endif + + case _SC_THREAD_ATTR_STACKADDR: +#ifdef _POSIX_THREAD_ATTR_STACKADDR + return 1; +#else + return -1; +#endif + + case _SC_THREAD_ATTR_STACKSIZE: +#ifdef _POSIX_THREAD_ATTR_STACKSIZE + return 1; +#else + return -1; +#endif + + case _SC_THREAD_PRIORITY_SCHEDULING: +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING + return 1; +#else + return -1; +#endif + + case _SC_THREAD_PRIO_INHERIT: +#ifdef _POSIX_THREAD_PRIO_INHERIT + return 1; +#else + return -1; +#endif + + case _SC_THREAD_PRIO_PROTECT: +#ifdef _POSIX_THREAD_PRIO_PROTECT + return 1; +#else + return -1; +#endif + + case _SC_THREAD_PROCESS_SHARED: +#ifdef _POSIX_THREAD_PROCESS_SHARED + return 1; +#else + return -1; +#endif + + case _SC_THREAD_SAFE_FUNCTIONS: +#ifdef _POSIX_THREAD_SAFE_FUNCTIONS + return 1; +#else + return -1; +#endif + + case _SC_VERSION: +#ifdef _POSIX_VERSION + return _POSIX_VERSION; +#else + return -1; +#endif + + default: + errno = EINVAL; + return -1; + } + + return -1; /* can't get here */ +} |