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