]> git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/posix/sysconf.c
Update.
[thirdparty/glibc.git] / sysdeps / posix / sysconf.c
1 /* Copyright (C) 1991,93,95,96,97,99,2000,2001 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public License as
6 published by the Free Software Foundation; either version 2 of the
7 License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public
15 License along with the GNU C Library; see the file COPYING.LIB. If not,
16 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 02111-1307, USA. */
18
19 #include <errno.h>
20 #include <limits.h>
21 #include <grp.h>
22 #include <pwd.h>
23 #include <stddef.h>
24 #include <stdio.h>
25 #include <time.h>
26 #include <unistd.h>
27 #include <sys/sysinfo.h>
28 #include <sys/types.h>
29 #include <regex.h>
30
31
32 /* Get the value of the system variable NAME. */
33 long int
34 __sysconf (name)
35 int name;
36 {
37 switch (name)
38 {
39 default:
40 __set_errno (EINVAL);
41 return -1;
42
43 case _SC_ARG_MAX:
44 #ifdef ARG_MAX
45 return ARG_MAX;
46 #else
47 return -1;
48 #endif
49
50 case _SC_CHILD_MAX:
51 #ifdef CHILD_MAX
52 return CHILD_MAX;
53 #else
54 return -1;
55 #endif
56
57 case _SC_CLK_TCK:
58 return __getclktck ();
59
60 case _SC_NGROUPS_MAX:
61 #ifdef NGROUPS_MAX
62 return NGROUPS_MAX;
63 #else
64 return -1;
65 #endif
66
67 case _SC_OPEN_MAX:
68 return __getdtablesize ();
69
70 case _SC_STREAM_MAX:
71 #ifdef STREAM_MAX
72 return STREAM_MAX;
73 #else
74 return FOPEN_MAX;
75 #endif
76
77 case _SC_TZNAME_MAX:
78 return __tzname_max ();
79
80 case _SC_JOB_CONTROL:
81 #ifdef _POSIX_JOB_CONTROL
82 return 1;
83 #else
84 return -1;
85 #endif
86
87 case _SC_SAVED_IDS:
88 #ifdef _POSIX_SAVED_IDS
89 return 1;
90 #else
91 return -1;
92 #endif
93
94 case _SC_REALTIME_SIGNALS:
95 #ifdef _POSIX_REALTIME_SIGNALS
96 return 1;
97 #else
98 return -1;
99 #endif
100
101 case _SC_PRIORITY_SCHEDULING:
102 #ifdef _POSIX_PRIORITY_SCHEDULING
103 return 1;
104 #else
105 return -1;
106 #endif
107
108 case _SC_TIMERS:
109 #ifdef _POSIX_TIMERS
110 return 1;
111 #else
112 return -1;
113 #endif
114
115 case _SC_ASYNCHRONOUS_IO:
116 #ifdef _POSIX_ASYNCHRONOUS_IO
117 return 1;
118 #else
119 return -1;
120 #endif
121
122 case _SC_PRIORITIZED_IO:
123 #ifdef _POSIX_PRIORITIZED_IO
124 return 1;
125 #else
126 return -1;
127 #endif
128
129 case _SC_SYNCHRONIZED_IO:
130 #ifdef _POSIX_SYNCHRONIZED_IO
131 return 1;
132 #else
133 return -1;
134 #endif
135
136 case _SC_FSYNC:
137 #ifdef _POSIX_FSYNC
138 return 1;
139 #else
140 return -1;
141 #endif
142
143 case _SC_MAPPED_FILES:
144 #ifdef _POSIX_MAPPED_FILES
145 return 1;
146 #else
147 return -1;
148 #endif
149
150 case _SC_MEMLOCK:
151 #ifdef _POSIX_MEMLOCK
152 return 1;
153 #else
154 return -1;
155 #endif
156
157 case _SC_MEMLOCK_RANGE:
158 #ifdef _POSIX_MEMLOCK_RANGE
159 return 1;
160 #else
161 return -1;
162 #endif
163
164 case _SC_MEMORY_PROTECTION:
165 #ifdef _POSIX_MEMORY_PROTECTION
166 return 1;
167 #else
168 return -1;
169 #endif
170
171 case _SC_MESSAGE_PASSING:
172 #ifdef _POSIX_MESSAGE_PASSING
173 return 1;
174 #else
175 return -1;
176 #endif
177
178 case _SC_SEMAPHORES:
179 #ifdef _POSIX_SEMAPHORES
180 return 1;
181 #else
182 return -1;
183 #endif
184
185 case _SC_SHARED_MEMORY_OBJECTS:
186 #ifdef _POSIX_SHARED_MEMORY_OBJECTS
187 return 1;
188 #else
189 return -1;
190 #endif
191
192 case _SC_VERSION:
193 return _POSIX_VERSION;
194
195 case _SC_PAGESIZE:
196 return __getpagesize ();
197
198 case _SC_AIO_LISTIO_MAX:
199 #ifdef AIO_LISTIO_MAX
200 return AIO_LISTIO_MAX;
201 #else
202 return -1;
203 #endif
204
205 case _SC_AIO_MAX:
206 #ifdef AIO_MAX
207 return AIO_MAX;
208 #else
209 return -1;
210 #endif
211
212 case _SC_AIO_PRIO_DELTA_MAX:
213 #ifdef AIO_PRIO_DELTA_MAX
214 return AIO_PRIO_DELTA_MAX;
215 #else
216 return -1;
217 #endif
218
219 case _SC_DELAYTIMER_MAX:
220 #ifdef DELAYTIMER_MAX
221 return DELAYTIMER_MAX;
222 #else
223 return -1;
224 #endif
225
226 case _SC_MQ_OPEN_MAX:
227 #ifdef MQ_OPEN_MAX
228 return MQ_OPEN_MAX;
229 #else
230 return -1;
231 #endif
232
233 case _SC_MQ_PRIO_MAX:
234 #ifdef MQ_PRIO_MAX
235 return MQ_PRIO_MAX;
236 #else
237 return -1;
238 #endif
239
240 case _SC_RTSIG_MAX:
241 #ifdef RTSIG_MAX
242 return RTSIG_MAX;
243 #else
244 return -1;
245 #endif
246
247 case _SC_SEM_NSEMS_MAX:
248 #ifdef SEM_NSEMS_MAX
249 return SEM_NSEMS_MAX;
250 #else
251 return -1;
252 #endif
253
254 case _SC_SEM_VALUE_MAX:
255 #ifdef SEM_VALUE_MAX
256 return SEM_VALUE_MAX;
257 #else
258 return -1;
259 #endif
260
261 case _SC_SIGQUEUE_MAX:
262 #ifdef SIGQUEUE_MAX
263 return SIGQUEUE_MAX;
264 #else
265 return -1;
266 #endif
267
268 case _SC_TIMER_MAX:
269 #ifdef TIMER_MAX
270 return TIMER_MAX;
271 #else
272 return -1;
273 #endif
274
275 case _SC_BC_BASE_MAX:
276 #ifdef BC_BASE_MAX
277 return BC_BASE_MAX;
278 #else
279 return -1;
280 #endif
281
282 case _SC_BC_DIM_MAX:
283 #ifdef BC_DIM_MAX
284 return BC_DIM_MAX;
285 #else
286 return -1;
287 #endif
288
289 case _SC_BC_SCALE_MAX:
290 #ifdef BC_SCALE_MAX
291 return BC_SCALE_MAX;
292 #else
293 return -1;
294 #endif
295
296 case _SC_BC_STRING_MAX:
297 #ifdef BC_STRING_MAX
298 return BC_STRING_MAX;
299 #else
300 return -1;
301 #endif
302
303 case _SC_COLL_WEIGHTS_MAX:
304 #ifdef COLL_WEIGHTS_MAX
305 return COLL_WEIGHTS_MAX;
306 #else
307 return -1;
308 #endif
309
310 case _SC_EXPR_NEST_MAX:
311 #ifdef EXPR_NEST_MAX
312 return EXPR_NEST_MAX;
313 #else
314 return -1;
315 #endif
316
317 case _SC_LINE_MAX:
318 #ifdef LINE_MAX
319 return LINE_MAX;
320 #else
321 return -1;
322 #endif
323
324 case _SC_RE_DUP_MAX:
325 #ifdef RE_DUP_MAX
326 return RE_DUP_MAX;
327 #else
328 return -1;
329 #endif
330
331 case _SC_CHARCLASS_NAME_MAX:
332 #ifdef CHARCLASS_NAME_MAX
333 return CHARCLASS_NAME_MAX;
334 #else
335 return -1;
336 #endif
337
338 case _SC_PII:
339 #ifdef _POSIX_PII
340 return 1;
341 #else
342 return -1;
343 #endif
344
345 case _SC_PII_XTI:
346 #ifdef _POSIX_PII_XTI
347 return 1;
348 #else
349 return -1;
350 #endif
351
352 case _SC_PII_SOCKET:
353 #ifdef _POSIX_PII_SOCKET
354 return 1;
355 #else
356 return -1;
357 #endif
358
359 case _SC_PII_INTERNET:
360 #ifdef _POSIX_PII_INTERNET
361 return 1;
362 #else
363 return -1;
364 #endif
365
366 case _SC_PII_OSI:
367 #ifdef _POSIX_PII_OSI
368 return 1;
369 #else
370 return -1;
371 #endif
372
373 case _SC_POLL:
374 #ifdef _POSIX_POLL
375 return 1;
376 #else
377 return -1;
378 #endif
379
380 case _SC_SELECT:
381 #ifdef _POSIX_SELECT
382 return 1;
383 #else
384 return -1;
385 #endif
386
387 case _SC_UIO_MAXIOV:
388 #ifdef UIO_MAXIOV
389 return UIO_MAXIOV;
390 #else
391 return -1;
392 #endif
393
394 case _SC_PII_INTERNET_STREAM:
395 #ifdef _POSIX_PII_INTERNET_STREAM
396 return 1;
397 #else
398 return -1;
399 #endif
400
401 case _SC_PII_INTERNET_DGRAM:
402 #ifdef _POSIX_PII_INTERNET_DGRAM
403 return 1;
404 #else
405 return -1;
406 #endif
407
408 case _SC_PII_OSI_COTS:
409 #ifdef _POSIX_PII_OSI_COTS
410 return 1;
411 #else
412 return -1;
413 #endif
414
415 case _SC_PII_OSI_CLTS:
416 #ifdef _POSIX_PII_OSI_CLTS
417 return 1;
418 #else
419 return -1;
420 #endif
421
422 case _SC_PII_OSI_M:
423 #ifdef _POSIX_PII_OSI_M
424 return 1;
425 #else
426 return -1;
427 #endif
428
429 case _SC_T_IOV_MAX:
430 #ifdef _T_IOV_MAX
431 return _T_IOV_MAX;
432 #else
433 return -1;
434 #endif
435
436 case _SC_2_VERSION:
437 return _POSIX2_VERSION;
438
439 case _SC_2_C_BIND:
440 #ifdef _POSIX2_C_BIND
441 return _POSIX2_C_BIND;
442 #else
443 return -1;
444 #endif
445
446 case _SC_2_C_DEV:
447 #ifdef _POSIX2_C_DEV
448 return _POSIX2_C_DEV;
449 #else
450 return -1;
451 #endif
452
453 case _SC_2_C_VERSION:
454 #ifdef _POSIX2_C_VERSION
455 return _POSIX2_C_VERSION;
456 #else
457 return -1;
458 #endif
459
460 case _SC_2_FORT_DEV:
461 #ifdef _POSIX2_FORT_DEV
462 return _POSIX2_FORT_DEV;
463 #else
464 return -1;
465 #endif
466
467 case _SC_2_LOCALEDEF:
468 #ifdef _POSIX2_LOCALEDEF
469 return _POSIX2_LOCALEDEF;
470 #else
471 return -1;
472 #endif
473
474 case _SC_2_SW_DEV:
475 #ifdef _POSIX2_SW_DEV
476 return _POSIX2_SW_DEV;
477 #else
478 return -1;
479 #endif
480
481 case _SC_2_CHAR_TERM:
482 #ifdef _POSIX2_CHAR_TERM
483 return _POSIX2_CHAR_TERM;
484 #else
485 return -1;
486 #endif
487
488 case _SC_2_UPE:
489 #ifdef _POSIX2_UPE
490 return _POSIX2_UPE;
491 #else
492 return -1;
493 #endif
494
495 /* POSIX 1003.1c (POSIX Threads). */
496 case _SC_THREADS:
497 #ifdef _POSIX_THREADS
498 return 1;
499 #else
500 return -1;
501 #endif
502
503 case _SC_THREAD_SAFE_FUNCTIONS:
504 #ifdef _POSIX_THREAD_SAFE_FUNCTIONS
505 return 1;
506 #else
507 return -1;
508 #endif
509
510 case _SC_GETGR_R_SIZE_MAX:
511 #ifdef NSS_BUFLEN_GROUP
512 return NSS_BUFLEN_GROUP;
513 #else
514 return -1;
515 #endif
516
517 case _SC_GETPW_R_SIZE_MAX:
518 #ifdef NSS_BUFLEN_PASSWD
519 return NSS_BUFLEN_PASSWD;
520 #else
521 return -1;
522 #endif
523
524 case _SC_LOGIN_NAME_MAX:
525 #ifdef _POSIX_LOGIN_NAME_MAX
526 return _POSIX_LOGIN_NAME_MAX;
527 #else
528 return -1;
529 #endif
530
531 case _SC_TTY_NAME_MAX:
532 #ifdef _POSIX_TTY_NAME_MAX
533 return _POSIX_TTY_NAME_MAX;
534 #else
535 return -1;
536 #endif
537
538 case _SC_THREAD_DESTRUCTOR_ITERATIONS:
539 #ifdef _POSIX_THREAD_DESTRUCTOR_ITERATIONS
540 return _POSIX_THREAD_DESTRUCTOR_ITERATIONS;
541 #else
542 return -1;
543 #endif
544
545 case _SC_THREAD_KEYS_MAX:
546 #ifdef PTHREAD_KEYS_MAX
547 return PTHREAD_KEYS_MAX;
548 #else
549 return -1;
550 #endif
551
552 case _SC_THREAD_STACK_MIN:
553 #ifdef PTHREAD_STACK_MIN
554 return PTHREAD_STACK_MIN;
555 #else
556 return -1;
557 #endif
558
559 case _SC_THREAD_THREADS_MAX:
560 #ifdef PTHREAD_THREADS_MAX
561 return PTHREAD_THREADS_MAX;
562 #else
563 return -1;
564 #endif
565
566 case _SC_THREAD_ATTR_STACKADDR:
567 #ifdef _POSIX_THREAD_ATTR_STACKADDR
568 return 1;
569 #else
570 return -1;
571 #endif
572
573 case _SC_THREAD_ATTR_STACKSIZE:
574 #ifdef _POSIX_THREAD_ATTR_STACKSIZE
575 return 1;
576 #else
577 return -1;
578 #endif
579
580 case _SC_THREAD_PRIORITY_SCHEDULING:
581 #ifdef _POSIX_THREAD_PRIORITY_SCHEDULING
582 return 1;
583 #else
584 return -1;
585 #endif
586
587 case _SC_THREAD_PRIO_INHERIT:
588 #ifdef _POSIX_THREAD_PRIO_INHERIT
589 return 1;
590 #else
591 return -1;
592 #endif
593
594 case _SC_THREAD_PRIO_PROTECT:
595 #ifdef _POSIX_THREAD_PRIO_PROTECT
596 return 1;
597 #else
598 return -1;
599 #endif
600
601 case _SC_THREAD_PROCESS_SHARED:
602 #ifdef _POSIX_THREAD_PROCESS_SHARED
603 return 1;
604 #else
605 return -1;
606 #endif
607
608 case _SC_NPROCESSORS_CONF:
609 return __get_nprocs_conf ();
610
611 case _SC_NPROCESSORS_ONLN:
612 return __get_nprocs ();
613
614 case _SC_PHYS_PAGES:
615 return __get_phys_pages ();
616
617 case _SC_AVPHYS_PAGES:
618 return __get_avphys_pages ();
619
620 case _SC_ATEXIT_MAX:
621 /* We have no limit since we use lists. */
622 return INT_MAX;
623
624 case _SC_PASS_MAX:
625 /* We have no limit but since the return value might be used to
626 allocate a buffer we restrict the value. */
627 return BUFSIZ;
628
629 case _SC_XOPEN_VERSION:
630 return _XOPEN_VERSION;
631
632 case _SC_XOPEN_XCU_VERSION:
633 return _XOPEN_XCU_VERSION;
634
635 case _SC_XOPEN_UNIX:
636 return _XOPEN_UNIX;
637
638 case _SC_XOPEN_CRYPT:
639 #ifdef _XOPEN_CRYPT
640 return _XOPEN_CRYPT;
641 #else
642 return -1;
643 #endif
644
645 case _SC_XOPEN_ENH_I18N:
646 #ifdef _XOPEN_ENH_I18N
647 return _XOPEN_ENH_I18N;
648 #else
649 return -1;
650 #endif
651
652 case _SC_XOPEN_SHM:
653 #ifdef _XOPEN_SHM
654 return _XOPEN_SHM;
655 #else
656 return -1;
657 #endif
658
659 case _SC_XOPEN_XPG2:
660 #ifdef _XOPEN_XPG2
661 return _XOPEN_XPG2;
662 #else
663 return -1;
664 #endif
665
666 case _SC_XOPEN_XPG3:
667 #ifdef _XOPEN_XPG3
668 return _XOPEN_XPG3;
669 #else
670 return -1;
671 #endif
672
673 case _SC_XOPEN_XPG4:
674 #ifdef _XOPEN_XPG4
675 return _XOPEN_XPG4;
676 #else
677 return -1;
678 #endif
679
680 case _SC_CHAR_BIT:
681 return CHAR_BIT;
682
683 case _SC_CHAR_MAX:
684 return CHAR_MAX;
685
686 case _SC_CHAR_MIN:
687 return CHAR_MIN;
688
689 case _SC_INT_MAX:
690 return INT_MAX;
691
692 case _SC_INT_MIN:
693 return INT_MIN;
694
695 case _SC_LONG_BIT:
696 return sizeof (long int) * CHAR_BIT;
697
698 case _SC_WORD_BIT:
699 return sizeof (int) * CHAR_BIT;
700
701 case _SC_MB_LEN_MAX:
702 return MB_LEN_MAX;
703
704 case _SC_NZERO:
705 return NZERO;
706
707 case _SC_SSIZE_MAX:
708 return _POSIX_SSIZE_MAX;
709
710 case _SC_SCHAR_MAX:
711 return SCHAR_MAX;
712
713 case _SC_SCHAR_MIN:
714 return SCHAR_MIN;
715
716 case _SC_SHRT_MAX:
717 return SHRT_MAX;
718
719 case _SC_SHRT_MIN:
720 return SHRT_MIN;
721
722 case _SC_UCHAR_MAX:
723 return UCHAR_MAX;
724
725 case _SC_UINT_MAX:
726 return UINT_MAX;
727
728 case _SC_ULONG_MAX:
729 return ULONG_MAX;
730
731 case _SC_USHRT_MAX:
732 return USHRT_MAX;
733
734 case _SC_NL_ARGMAX:
735 #ifdef NL_ARGMAX
736 return NL_ARGMAX;
737 #else
738 return -1;
739 #endif
740
741 case _SC_NL_LANGMAX:
742 #ifdef NL_LANGMAX
743 return NL_LANGMAX;
744 #else
745 return -1;
746 #endif
747
748 case _SC_NL_MSGMAX:
749 #ifdef NL_MSGMAX
750 return NL_MSGMAX;
751 #else
752 return -1;
753 #endif
754
755 case _SC_NL_NMAX:
756 #ifdef NL_NMAX
757 return NL_NMAX;
758 #else
759 return -1;
760 #endif
761
762 case _SC_NL_SETMAX:
763 #ifdef NL_SETMAX
764 return NL_SETMAX;
765 #else
766 return -1;
767 #endif
768
769 case _SC_NL_TEXTMAX:
770 #ifdef NL_TEXTMAX
771 return NL_TEXTMAX;
772 #else
773 return -1;
774 #endif
775
776 case _SC_XBS5_ILP32_OFF32:
777 #ifdef _XBS5_ILP32_OFF32
778 return _XBS5_ILP32_OFF32;
779 #else
780 return -1;
781 #endif
782 case _SC_XBS5_ILP32_OFFBIG:
783 #ifdef _XBS5_ILP32_OFFBIG
784 return _XBS5_ILP32_OFFBIG;
785 #else
786 return -1;
787 #endif
788 case _SC_XBS5_LP64_OFF64:
789 #ifdef _XBS5_LP64_OFF64
790 return _XBS5_LP64_OFF64;
791 #else
792 return -1;
793 #endif
794 case _SC_XBS5_LPBIG_OFFBIG:
795 #ifdef _XBS5_LPBIG_OFFBIG
796 return _XBS5_LPBIG_OFFBIG;
797 #else
798 return -1;
799 #endif
800
801 case _SC_XOPEN_LEGACY:
802 return _XOPEN_LEGACY;
803
804 case _SC_XOPEN_REALTIME:
805 #ifdef _XOPEN_REALTIME
806 return _XOPEN_REALTIME;
807 #else
808 return -1;
809 #endif
810 case _SC_XOPEN_REALTIME_THREADS:
811 #ifdef _XOPEN_REALTIME_THREADS
812 return _XOPEN_REALTIME_THREADS;
813 #else
814 return -1;
815 #endif
816
817 case _SC_ADVISORY_INFO:
818 #ifdef _POSIX_ADVISORY_INFO
819 return _POSIX_ADVISORY_INFO;
820 #else
821 return -1;
822 #endif
823
824 case _SC_BARRIERS:
825 #ifdef _POSIX_BARRIERS
826 return _POSIX_BARRIERS;
827 #else
828 return -1;
829 #endif
830
831 case _SC_BASE:
832 #ifdef _POSIX_BASE
833 return _POSIX_BASE;
834 #else
835 return -1;
836 #endif
837 case _SC_C_LANG_SUPPORT:
838 #ifdef _POSIX_C_LANG_SUPPORT
839 return _POSIX_C_LANG_SUPPORT;
840 #else
841 return -1;
842 #endif
843 case _SC_C_LANG_SUPPORT_R:
844 #ifdef _POSIX_C_LANG_SUPPORT_R
845 return _POSIX_C_LANG_SUPPORT_R;
846 #else
847 return -1;
848 #endif
849
850 case _SC_CLOCK_SELECTION:
851 #ifdef _POSIX_CLOCK_SELECTION
852 return _POSIX_CLOCK_SELECTION;
853 #else
854 return -1;
855 #endif
856
857 case _SC_CPUTIME:
858 #ifdef _POSIX_CPUTIME
859 return _POSIX_CPUTIME;
860 #else
861 return -1;
862 #endif
863
864 case _SC_DEVICE_IO:
865 #ifdef _POSIX_DEVICE_IO
866 return _POSIX_DEVICE_IO;
867 #else
868 return -1;
869 #endif
870 case _SC_DEVICE_SPECIFIC:
871 #ifdef _POSIX_DEVICE_SPCIFIC
872 return _POSIX_DEVICE_SPECIFIC;
873 #else
874 return -1;
875 #endif
876 case _SC_DEVICE_SPECIFIC_R:
877 #ifdef _POSIX_DEVICE_SPCIFIC_R
878 return _POSIX_DEVICE_SPECIFIC_R;
879 #else
880 return -1;
881 #endif
882
883 case _SC_FD_MGMT:
884 #ifdef _POSIX_FD_MGMT
885 return _POSIX_FD_MGMT;
886 #else
887 return -1;
888 #endif
889
890 case _SC_FIFO:
891 #ifdef _POSIX_FIFO
892 return _POSIX_FIFO;
893 #else
894 return -1;
895 #endif
896 case _SC_PIPE:
897 #ifdef _POSIX_PIPE
898 return _POSIX_PIPE;
899 #else
900 return -1;
901 #endif
902
903 case _SC_FILE_ATTRIBUTES:
904 #ifdef _POSIX_FILE_ATTRIBUTES
905 return _POSIX_FILE_ATTRIBUTES;
906 #else
907 return -1;
908 #endif
909 case _SC_FILE_LOCKING:
910 #ifdef _POSIX_FILE_LOCKING
911 return _POSIX_FILE_LOCKING;
912 #else
913 return -1;
914 #endif
915 case _SC_FILE_SYSTEM:
916 #ifdef _POSIX_FILE_SYSTEM
917 return _POSIX_FILE_SYSTEM;
918 #else
919 return -1;
920 #endif
921
922 case _SC_MONOTONIC_CLOCK:
923 #ifdef _POSIX_MONOTONIC_CLOCK
924 return _POSIX_MONOTONIC_CLOCK;
925 #else
926 return -1;
927 #endif
928
929 case _SC_MULTIPLE_PROCESS:
930 #ifdef _POSIX_MULTIPLE_PROCESS
931 return _POSIX_MULTIPLE_PROCESS;
932 #else
933 return -1;
934 #endif
935 case _SC_SINGLE_PROCESS:
936 #ifdef _POSIX_SINGLE_PROCESS
937 return _POSIX_SINGLE_PROCESS;
938 #else
939 return -1;
940 #endif
941
942 case _SC_NETWORKING:
943 #ifdef _POSIX_NETWORKING
944 return _POSIX_NETWORKING;
945 #else
946 return -1;
947 #endif
948
949 case _SC_READER_WRITER_LOCKS:
950 #ifdef _POSIX_READER_WRITER_LOCKS
951 return _POSIX_READER_WRITER_LOCKS;
952 #else
953 return -1;
954 #endif
955 case _SC_SPIN_LOCKS:
956 #ifdef _POSIX_SPIN_LOCKS
957 return _POSIX_SPIN_LOCKS;
958 #else
959 return -1;
960 #endif
961
962 case _SC_REGEXP:
963 #ifdef _POSIX_REGEXP
964 return _POSIX_REGEXP;
965 #else
966 return -1;
967 #endif
968 case _SC_REGEX_VERSION:
969 #ifdef _POSIX_REGEX_VERSION
970 return _POSIX_REGEX_VERSION;
971 #else
972 return -1;
973 #endif
974
975 case _SC_SHELL:
976 #ifdef _POSIX_SHELL
977 return _POSIX_SHELL;
978 #else
979 return -1;
980 #endif
981
982 case _SC_SIGNALS:
983 #ifdef _POSUX_SIGNALS
984 return _POSIX_SIGNALS;
985 #else
986 return -1;
987 #endif
988
989 case _SC_SPAWN:
990 #ifdef _POSIX_SPAWN
991 return _POSIX_SPAWN;
992 #else
993 return -1;
994 #endif
995
996 case _SC_SPORADIC_SERVER:
997 #ifdef _POSIX_SPORADIC_SERVER
998 return _POSIX_SPORADIC_SERVER;
999 #else
1000 return -1;
1001 #endif
1002 case _SC_THREAD_SPORADIC_SERVER:
1003 #ifdef _POSIX_THREAD_SPORADIC_SERVER
1004 return _POSIX_THREAD_SPORADIC_SERVER;
1005 #else
1006 return -1;
1007 #endif
1008
1009 case _SC_SYSTEM_DATABASE:
1010 #ifdef _POSIX_SYSTEM_DATABASE
1011 return _POSIX_SYSTEM_DATABASE;
1012 #else
1013 return -1;
1014 #endif
1015 case _SC_SYSTEM_DATABASE_R:
1016 #ifdef _POSIX_SYSTEM_DATABASE_R
1017 return _POSIX_SYSTEM_DATABASE_R;
1018 #else
1019 return -1;
1020 #endif
1021
1022 case _SC_THREAD_CPUTIME:
1023 #ifdef _POSIX_THREAD_CPUTIME
1024 return _POSIX_THREAD_CPUTIME;
1025 #else
1026 return -1;
1027 #endif
1028
1029 case _SC_TIMEOUTS:
1030 #ifdef _POSIX_TIMEOUTS
1031 return _POSIX_TIMEOUTS;
1032 #else
1033 return -1;
1034 #endif
1035
1036 case _SC_TYPED_MEMORY_OBJECTS:
1037 #ifdef _POSIX_TYPED_MEMORY_OBJECTS
1038 return _POSIX_TYPED_MEMORY_OBJECTS;
1039 #else
1040 return -1;
1041 #endif
1042
1043 case _SC_USER_GROUPS:
1044 #ifdef _POSIX_USER_GROUPS
1045 return _POSIX_USER_GROUPS;
1046 #else
1047 return -1;
1048 #endif
1049 case _SC_USER_GROUPS_R:
1050 #ifdef _POSIX_USER_GROUPS_R
1051 return _POSIX_USER_GROUPS_R;
1052 #else
1053 return -1;
1054 #endif
1055
1056 case _SC_2_PBS:
1057 #ifdef _POSIX2_PBS
1058 return _POSIX2_PBS;
1059 #else
1060 return -1;
1061 #endif
1062 case _SC_2_PBS_ACCOUNTING:
1063 #ifdef _POSIX2_PBS_ACCOUNTING
1064 return _POSIX2_PBS_ACCOUNTING;
1065 #else
1066 return -1;
1067 #endif
1068 case _SC_2_PBS_CHECKPOINT:
1069 #ifdef _POSIX2_PBS_CHECKPOINT
1070 return _POSIX2_PBS_CHECKPOINT;
1071 #else
1072 return -1;
1073 #endif
1074 case _SC_2_PBS_LOCATE:
1075 #ifdef _POSIX2_PBS_LOCATE
1076 return _POSIX2_PBS_LOCATE;
1077 #else
1078 return -1;
1079 #endif
1080 case _SC_2_PBS_TRACK:
1081 #ifdef _POSIX2_PBS_TRACK
1082 return _POSIX2_PBS_TRACK;
1083 #else
1084 return -1;
1085 #endif
1086
1087 case _SC_SYMLOOP:
1088 #ifdef SYMLOOP_MAX
1089 return SYMLOOP_MAX;
1090 #else
1091 return -1;
1092 #endif
1093
1094 case _SC_STREAMS:
1095 #ifdef _XOPEN_STREAMS
1096 return _XOPEN_STREAMS;
1097 #else
1098 return -1;
1099 #endif
1100 }
1101 }
1102
1103 #undef __sysconf
1104 weak_alias (__sysconf, sysconf)