Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2002-04-05 02:41:11 +0400
committerJeff Johnston <jjohnstn@redhat.com>2002-04-05 02:41:11 +0400
commit6e6cd5bde6164914615f5e82a1b49ed5b2c25eb9 (patch)
tree04c16a09dc72fc5f5379865a9916b2ec8c8f4616 /newlib/libc/sys/linux/sysconf.c
parent244a8fae426a68ad51cd610cebd1361a834d676a (diff)
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.c383
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 */
+}