1 /* Copyright (C) 1991-2017 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
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.
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.
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, see
16 <http://www.gnu.org/licenses/>. */
28 #include <sys/param.h>
30 #include <sys/sysinfo.h>
31 #include <sys/types.h>
34 #define NEED_SPEC_ARRAY 0
35 #include <posix-conf-vars.h>
37 #define NEED_CHECK_SPEC \
38 (!defined _XBS5_ILP32_OFF32 || !defined _XBS5_ILP32_OFFBIG \
39 || !defined _XBS5_LP64_OFF64 || !defined _XBS5_LPBIG_OFFBIG \
40 || !defined _POSIX_V6_ILP32_OFF32 || !defined _POSIX_V6_ILP32_OFFBIG \
41 || !defined _POSIX_V6_LP64_OFF64 || !defined _POSIX_V6_LPBIG_OFFBIG \
42 || !defined _POSIX_V7_ILP32_OFF32 || !defined _POSIX_V7_ILP32_OFFBIG \
43 || !defined _POSIX_V7_LP64_OFF64 || !defined _POSIX_V7_LPBIG_OFFBIG)
45 static long int __sysconf_check_spec (const char *spec
);
49 /* Get the value of the system variable NAME. */
55 /* Also add obsolete or unnecessarily added constants here. */
56 case _SC_EQUIV_CLASS_MAX
:
72 return __get_child_max ();
76 return __getclktck ();
86 return __getdtablesize ();
99 #if CONF_IS_DEFINED_SET (_POSIX_JOB_CONTROL)
100 return _POSIX_JOB_CONTROL
;
106 #if CONF_IS_DEFINED_SET (_POSIX_SAVED_IDS)
112 case _SC_REALTIME_SIGNALS
:
113 #if CONF_IS_DEFINED_SET (_POSIX_REALTIME_SIGNALS)
114 return _POSIX_REALTIME_SIGNALS
;
119 case _SC_PRIORITY_SCHEDULING
:
120 #if CONF_IS_DEFINED_SET (_POSIX_PRIORITY_SCHEDULING)
121 return _POSIX_PRIORITY_SCHEDULING
;
127 #if CONF_IS_DEFINED_SET (_POSIX_TIMERS)
128 return _POSIX_TIMERS
;
133 case _SC_ASYNCHRONOUS_IO
:
134 #if CONF_IS_DEFINED_SET (_POSIX_ASYNCHRONOUS_IO)
135 return _POSIX_ASYNCHRONOUS_IO
;
140 case _SC_PRIORITIZED_IO
:
141 #if CONF_IS_DEFINED_SET (_POSIX_PRIORITIZED_IO)
142 return _POSIX_PRIORITIZED_IO
;
147 case _SC_SYNCHRONIZED_IO
:
148 #if CONF_IS_DEFINED_SET (_POSIX_SYNCHRONIZED_IO)
149 return _POSIX_SYNCHRONIZED_IO
;
155 #if CONF_IS_DEFINED_SET (_POSIX_FSYNC)
161 case _SC_MAPPED_FILES
:
162 #if CONF_IS_DEFINED_SET (_POSIX_MAPPED_FILES)
163 return _POSIX_MAPPED_FILES
;
169 #if CONF_IS_DEFINED_SET (_POSIX_MEMLOCK)
170 return _POSIX_MEMLOCK
;
175 case _SC_MEMLOCK_RANGE
:
176 #if CONF_IS_DEFINED_SET (_POSIX_MEMLOCK_RANGE)
177 return _POSIX_MEMLOCK_RANGE
;
182 case _SC_MEMORY_PROTECTION
:
183 #if CONF_IS_DEFINED_SET (_POSIX_MEMORY_PROTECTION)
184 return _POSIX_MEMORY_PROTECTION
;
189 case _SC_MESSAGE_PASSING
:
190 #if CONF_IS_DEFINED_SET (_POSIX_MESSAGE_PASSING)
191 return _POSIX_MESSAGE_PASSING
;
197 #if CONF_IS_DEFINED_SET (_POSIX_SEMAPHORES)
198 return _POSIX_SEMAPHORES
;
203 case _SC_SHARED_MEMORY_OBJECTS
:
204 #if CONF_IS_DEFINED_SET (_POSIX_SHARED_MEMORY_OBJECTS)
205 return _POSIX_SHARED_MEMORY_OBJECTS
;
211 return _POSIX_VERSION
;
214 return __getpagesize ();
216 case _SC_AIO_LISTIO_MAX
:
217 #ifdef AIO_LISTIO_MAX
218 return AIO_LISTIO_MAX
;
230 case _SC_AIO_PRIO_DELTA_MAX
:
231 #ifdef AIO_PRIO_DELTA_MAX
232 return AIO_PRIO_DELTA_MAX
;
237 case _SC_DELAYTIMER_MAX
:
238 #ifdef DELAYTIMER_MAX
239 return DELAYTIMER_MAX
;
244 case _SC_MQ_OPEN_MAX
:
251 case _SC_MQ_PRIO_MAX
:
265 case _SC_SEM_NSEMS_MAX
:
267 return SEM_NSEMS_MAX
;
272 case _SC_SEM_VALUE_MAX
:
274 return SEM_VALUE_MAX
;
279 case _SC_SIGQUEUE_MAX
:
293 case _SC_BC_BASE_MAX
:
307 case _SC_BC_SCALE_MAX
:
314 case _SC_BC_STRING_MAX
:
316 return BC_STRING_MAX
;
321 case _SC_COLL_WEIGHTS_MAX
:
322 #ifdef COLL_WEIGHTS_MAX
323 return COLL_WEIGHTS_MAX
;
328 case _SC_EXPR_NEST_MAX
:
330 return EXPR_NEST_MAX
;
349 case _SC_CHARCLASS_NAME_MAX
:
350 #ifdef CHARCLASS_NAME_MAX
351 return CHARCLASS_NAME_MAX
;
357 #if CONF_IS_DEFINED_SET (_POSIX_PII)
364 #if CONF_IS_DEFINED_SET (_POSIX_PII_XTI)
371 #if CONF_IS_DEFINED_SET (_POSIX_PII_SOCKET)
377 case _SC_PII_INTERNET
:
378 #if CONF_IS_DEFINED_SET (_POSIX_PII_INTERNET)
385 #if CONF_IS_DEFINED_SET (_POSIX_PII_OSI)
392 #if CONF_IS_DEFINED_SET (_POSIX_POLL)
399 #if CONF_IS_DEFINED_SET (_POSIX_SELECT)
405 /* The same as _SC_IOV_MAX. */
413 case _SC_PII_INTERNET_STREAM
:
414 #if CONF_IS_DEFINED_SET (_POSIX_PII_INTERNET_STREAM)
420 case _SC_PII_INTERNET_DGRAM
:
421 #if CONF_IS_DEFINED_SET (_POSIX_PII_INTERNET_DGRAM)
427 case _SC_PII_OSI_COTS
:
428 #if CONF_IS_DEFINED_SET (_POSIX_PII_OSI_COTS)
434 case _SC_PII_OSI_CLTS
:
435 #if CONF_IS_DEFINED_SET (_POSIX_PII_OSI_CLTS)
442 #if CONF_IS_DEFINED_SET (_POSIX_PII_OSI_M)
456 return _POSIX2_VERSION
;
459 #ifdef _POSIX2_C_BIND
460 return _POSIX2_C_BIND
;
467 return _POSIX2_C_DEV
;
472 case _SC_2_C_VERSION
:
473 #ifdef _POSIX2_C_VERSION
474 return _POSIX2_C_VERSION
;
480 #ifdef _POSIX2_FORT_DEV
481 return _POSIX2_FORT_DEV
;
487 #ifdef _POSIX2_FORT_RUN
488 return _POSIX2_FORT_RUN
;
493 case _SC_2_LOCALEDEF
:
494 #ifdef _POSIX2_LOCALEDEF
495 return _POSIX2_LOCALEDEF
;
501 #ifdef _POSIX2_SW_DEV
502 return _POSIX2_SW_DEV
;
507 case _SC_2_CHAR_TERM
:
508 #ifdef _POSIX2_CHAR_TERM
509 return _POSIX2_CHAR_TERM
;
521 /* POSIX 1003.1c (POSIX Threads). */
523 #if CONF_IS_DEFINED_SET (_POSIX_THREADS)
524 return _POSIX_THREADS
;
529 case _SC_THREAD_SAFE_FUNCTIONS
:
530 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_SAFE_FUNCTIONS)
531 return _POSIX_THREAD_SAFE_FUNCTIONS
;
536 case _SC_GETGR_R_SIZE_MAX
:
537 return NSS_BUFLEN_GROUP
;
539 case _SC_GETPW_R_SIZE_MAX
:
540 return NSS_BUFLEN_PASSWD
;
542 case _SC_LOGIN_NAME_MAX
:
543 #ifdef LOGIN_NAME_MAX
544 return LOGIN_NAME_MAX
;
549 case _SC_TTY_NAME_MAX
:
556 case _SC_THREAD_DESTRUCTOR_ITERATIONS
:
557 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_DESTRUCTOR_ITERATIONS)
558 return _POSIX_THREAD_DESTRUCTOR_ITERATIONS
;
563 case _SC_THREAD_KEYS_MAX
:
564 #ifdef PTHREAD_KEYS_MAX
565 return PTHREAD_KEYS_MAX
;
570 case _SC_THREAD_STACK_MIN
:
571 #ifdef PTHREAD_STACK_MIN
572 return PTHREAD_STACK_MIN
;
577 case _SC_THREAD_THREADS_MAX
:
578 #ifdef PTHREAD_THREADS_MAX
579 return PTHREAD_THREADS_MAX
;
584 case _SC_THREAD_ATTR_STACKADDR
:
585 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_ATTR_STACKADDR)
586 return _POSIX_THREAD_ATTR_STACKADDR
;
591 case _SC_THREAD_ATTR_STACKSIZE
:
592 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_ATTR_STACKSIZE)
593 return _POSIX_THREAD_ATTR_STACKSIZE
;
598 case _SC_THREAD_PRIORITY_SCHEDULING
:
599 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_PRIORITY_SCHEDULING)
600 return _POSIX_THREAD_PRIORITY_SCHEDULING
;
605 case _SC_THREAD_PRIO_INHERIT
:
606 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_PRIO_INHERIT)
607 return _POSIX_THREAD_PRIO_INHERIT
;
612 case _SC_THREAD_PRIO_PROTECT
:
613 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_PRIO_PROTECT)
614 return _POSIX_THREAD_PRIO_PROTECT
;
619 case _SC_THREAD_PROCESS_SHARED
:
620 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_PROCESS_SHARED)
621 return _POSIX_THREAD_PROCESS_SHARED
;
626 case _SC_NPROCESSORS_CONF
:
627 return __get_nprocs_conf ();
629 case _SC_NPROCESSORS_ONLN
:
630 return __get_nprocs ();
633 return __get_phys_pages ();
635 case _SC_AVPHYS_PAGES
:
636 return __get_avphys_pages ();
639 /* We have no limit since we use lists. */
643 /* We have no limit but since the return value might be used to
644 allocate a buffer we restrict the value. */
647 case _SC_XOPEN_VERSION
:
648 return _XOPEN_VERSION
;
650 case _SC_XOPEN_XCU_VERSION
:
651 return _XOPEN_XCU_VERSION
;
656 case _SC_XOPEN_CRYPT
:
663 case _SC_XOPEN_ENH_I18N
:
664 #ifdef _XOPEN_ENH_I18N
665 return _XOPEN_ENH_I18N
;
714 return sizeof (long int) * CHAR_BIT
;
717 return sizeof (int) * CHAR_BIT
;
726 return _POSIX_SSIZE_MAX
;
794 #define START_ENV_GROUP(VERSION) \
797 #define END_ENV_GROUP(VERSION) \
800 #define KNOWN_ABSENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX) \
801 case _SC_##SC_PREFIX##_##SUFFIX: \
802 return _##ENV_PREFIX##_##SUFFIX;
804 #define KNOWN_PRESENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX) \
805 case _SC_##SC_PREFIX##_##SUFFIX: \
806 return _##ENV_PREFIX##_##SUFFIX;
808 #define UNKNOWN_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX) \
809 case _SC_##SC_PREFIX##_##SUFFIX: \
810 return __sysconf_check_spec (#SUFFIX);
812 #include <posix/posix-envs.def>
814 #undef START_ENV_GROUP
816 #undef KNOWN_ABSENT_ENVIRONMENT
817 #undef KNOWN_PRESENT_ENVIRONMENT
818 #undef UNKNOWN_ENVIRONMENT
820 case _SC_XOPEN_LEGACY
:
821 return _XOPEN_LEGACY
;
823 case _SC_XOPEN_REALTIME
:
824 #ifdef _XOPEN_REALTIME
825 return _XOPEN_REALTIME
;
829 case _SC_XOPEN_REALTIME_THREADS
:
830 #ifdef _XOPEN_REALTIME_THREADS
831 return _XOPEN_REALTIME_THREADS
;
836 case _SC_ADVISORY_INFO
:
837 #if CONF_IS_DEFINED_SET (_POSIX_ADVISORY_INFO)
838 return _POSIX_ADVISORY_INFO
;
844 #if CONF_IS_DEFINED_SET (_POSIX_BARRIERS)
845 return _POSIX_BARRIERS
;
851 #if CONF_IS_DEFINED_SET (_POSIX_BASE)
856 case _SC_C_LANG_SUPPORT
:
857 #if CONF_IS_DEFINED_SET (_POSIX_C_LANG_SUPPORT)
858 return _POSIX_C_LANG_SUPPORT
;
862 case _SC_C_LANG_SUPPORT_R
:
863 #if CONF_IS_DEFINED_SET (_POSIX_C_LANG_SUPPORT_R)
864 return _POSIX_C_LANG_SUPPORT_R
;
869 case _SC_CLOCK_SELECTION
:
870 #if CONF_IS_DEFINED_SET (_POSIX_CLOCK_SELECTION)
871 return _POSIX_CLOCK_SELECTION
;
877 #if CONF_IS_DEFINED_SET (_POSIX_CPUTIME)
878 return _POSIX_CPUTIME
;
884 #if CONF_IS_DEFINED_SET (_POSIX_DEVICE_IO)
885 return _POSIX_DEVICE_IO
;
889 case _SC_DEVICE_SPECIFIC
:
890 #if CONF_IS_DEFINED_SET (_POSIX_DEVICE_SPECIFIC)
891 return _POSIX_DEVICE_SPECIFIC
;
895 case _SC_DEVICE_SPECIFIC_R
:
896 #if CONF_IS_DEFINED_SET (_POSIX_DEVICE_SPECIFIC_R)
897 return _POSIX_DEVICE_SPECIFIC_R
;
903 #if CONF_IS_DEFINED_SET (_POSIX_FD_MGMT)
904 return _POSIX_FD_MGMT
;
910 #if CONF_IS_DEFINED_SET (_POSIX_FIFO)
916 #if CONF_IS_DEFINED_SET (_POSIX_PIPE)
922 case _SC_FILE_ATTRIBUTES
:
923 #if CONF_IS_DEFINED_SET (_POSIX_FILE_ATTRIBUTES)
924 return _POSIX_FILE_ATTRIBUTES
;
928 case _SC_FILE_LOCKING
:
929 #if CONF_IS_DEFINED_SET (_POSIX_FILE_LOCKING)
930 return _POSIX_FILE_LOCKING
;
934 case _SC_FILE_SYSTEM
:
935 #if CONF_IS_DEFINED_SET (_POSIX_FILE_SYSTEM)
936 return _POSIX_FILE_SYSTEM
;
941 case _SC_MONOTONIC_CLOCK
:
942 #if CONF_IS_DEFINED_SET (_POSIX_MONOTONIC_CLOCK)
943 return _POSIX_MONOTONIC_CLOCK
;
948 case _SC_MULTI_PROCESS
:
949 #if CONF_IS_DEFINED_SET (_POSIX_MULTI_PROCESS)
950 return _POSIX_MULTI_PROCESS
;
954 case _SC_SINGLE_PROCESS
:
955 #if CONF_IS_DEFINED_SET (_POSIX_SINGLE_PROCESS)
956 return _POSIX_SINGLE_PROCESS
;
962 #if CONF_IS_DEFINED_SET (_POSIX_NETWORKING)
963 return _POSIX_NETWORKING
;
968 case _SC_READER_WRITER_LOCKS
:
969 #if CONF_IS_DEFINED_SET (_POSIX_READER_WRITER_LOCKS)
970 return _POSIX_READER_WRITER_LOCKS
;
975 #if CONF_IS_DEFINED_SET (_POSIX_SPIN_LOCKS)
976 return _POSIX_SPIN_LOCKS
;
982 #if CONF_IS_DEFINED_SET (_POSIX_REGEXP)
983 return _POSIX_REGEXP
;
987 /* _REGEX_VERSION has been removed with IEEE Std 1003.1-2001/Cor 2-2004,
988 item XSH/TC2/D6/137. */
989 case _SC_REGEX_VERSION
:
993 #if CONF_IS_DEFINED_SET (_POSIX_SHELL)
1000 #if CONF_IS_DEFINED (_POSIX_SIGNALS)
1001 return _POSIX_SIGNALS
;
1007 #if CONF_IS_DEFINED_SET (_POSIX_SPAWN)
1008 return _POSIX_SPAWN
;
1013 case _SC_SPORADIC_SERVER
:
1014 #if CONF_IS_DEFINED_SET (_POSIX_SPORADIC_SERVER)
1015 return _POSIX_SPORADIC_SERVER
;
1019 case _SC_THREAD_SPORADIC_SERVER
:
1020 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_SPORADIC_SERVER)
1021 return _POSIX_THREAD_SPORADIC_SERVER
;
1026 case _SC_SYSTEM_DATABASE
:
1027 #if CONF_IS_DEFINED_SET (_POSIX_SYSTEM_DATABASE)
1028 return _POSIX_SYSTEM_DATABASE
;
1032 case _SC_SYSTEM_DATABASE_R
:
1033 #if CONF_IS_DEFINED_SET (_POSIX_SYSTEM_DATABASE_R)
1034 return _POSIX_SYSTEM_DATABASE_R
;
1039 case _SC_THREAD_CPUTIME
:
1040 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_CPUTIME)
1041 return _POSIX_THREAD_CPUTIME
;
1047 #if CONF_IS_DEFINED_SET (_POSIX_TIMEOUTS)
1048 return _POSIX_TIMEOUTS
;
1053 case _SC_TYPED_MEMORY_OBJECTS
:
1054 #if CONF_IS_DEFINED_SET (_POSIX_TYPED_MEMORY_OBJECTS)
1055 return _POSIX_TYPED_MEMORY_OBJECTS
;
1060 case _SC_USER_GROUPS
:
1061 #if CONF_IS_DEFINED_SET (_POSIX_USER_GROUPS)
1062 return _POSIX_USER_GROUPS
;
1066 case _SC_USER_GROUPS_R
:
1067 #if CONF_IS_DEFINED_SET (_POSIX_USER_GROUPS_R)
1068 return _POSIX_USER_GROUPS_R
;
1079 case _SC_2_PBS_ACCOUNTING
:
1080 #ifdef _POSIX2_PBS_ACCOUNTING
1081 return _POSIX2_PBS_ACCOUNTING
;
1085 case _SC_2_PBS_CHECKPOINT
:
1086 #ifdef _POSIX2_PBS_CHECKPOINT
1087 return _POSIX2_PBS_CHECKPOINT
;
1091 case _SC_2_PBS_LOCATE
:
1092 #ifdef _POSIX2_PBS_LOCATE
1093 return _POSIX2_PBS_LOCATE
;
1097 case _SC_2_PBS_MESSAGE
:
1098 #ifdef _POSIX2_PBS_MESSAGE
1099 return _POSIX2_PBS_MESSAGE
;
1103 case _SC_2_PBS_TRACK
:
1104 #ifdef _POSIX2_PBS_TRACK
1105 return _POSIX2_PBS_TRACK
;
1110 case _SC_SYMLOOP_MAX
:
1118 #ifdef _XOPEN_STREAMS
1119 return _XOPEN_STREAMS
;
1124 case _SC_HOST_NAME_MAX
:
1125 #ifdef HOST_NAME_MAX
1126 return HOST_NAME_MAX
;
1132 #if CONF_IS_DEFINED_SET (_POSIX_TRACE)
1133 return _POSIX_TRACE
;
1137 case _SC_TRACE_EVENT_FILTER
:
1138 #if CONF_IS_DEFINED_SET (_POSIX_TRACE_EVENT_FILTER)
1139 return _POSIX_TRACE_EVENT_FILTER
;
1143 case _SC_TRACE_INHERIT
:
1144 #if CONF_IS_DEFINED_SET (_POSIX_TRACE_INHERIT)
1145 return _POSIX_TRACE_INHERIT
;
1150 #if CONF_IS_DEFINED_SET (_POSIX_TRACE_LOG)
1151 return _POSIX_TRACE_LOG
;
1156 case _SC_TRACE_EVENT_NAME_MAX
:
1157 case _SC_TRACE_NAME_MAX
:
1158 case _SC_TRACE_SYS_MAX
:
1159 case _SC_TRACE_USER_EVENT_MAX
:
1160 /* No support for tracing. */
1162 case _SC_XOPEN_STREAMS
:
1163 /* No support for STREAMS. */
1166 case _SC_LEVEL1_ICACHE_SIZE
:
1167 case _SC_LEVEL1_ICACHE_ASSOC
:
1168 case _SC_LEVEL1_ICACHE_LINESIZE
:
1169 case _SC_LEVEL1_DCACHE_SIZE
:
1170 case _SC_LEVEL1_DCACHE_ASSOC
:
1171 case _SC_LEVEL1_DCACHE_LINESIZE
:
1172 case _SC_LEVEL2_CACHE_SIZE
:
1173 case _SC_LEVEL2_CACHE_ASSOC
:
1174 case _SC_LEVEL2_CACHE_LINESIZE
:
1175 case _SC_LEVEL3_CACHE_SIZE
:
1176 case _SC_LEVEL3_CACHE_ASSOC
:
1177 case _SC_LEVEL3_CACHE_LINESIZE
:
1178 case _SC_LEVEL4_CACHE_SIZE
:
1179 case _SC_LEVEL4_CACHE_ASSOC
:
1180 case _SC_LEVEL4_CACHE_LINESIZE
:
1181 /* In general we cannot determine these values. Therefore we
1182 return zero which indicates that no information is
1187 #if CONF_IS_DEFINED_SET (_POSIX_IPV6)
1193 case _SC_RAW_SOCKETS
:
1194 #if CONF_IS_DEFINED_SET (_POSIX_RAW_SOCKETS)
1195 return _POSIX_RAW_SOCKETS
;
1203 weak_alias (__sysconf
, sysconf
)
1204 libc_hidden_def (__sysconf
)
1208 __sysconf_check_spec (const char *spec
)
1210 int save_errno
= errno
;
1212 const char *getconf_dir
= __libc_secure_getenv ("GETCONF_DIR") ?: GETCONF_DIR
;
1213 size_t getconf_dirlen
= strlen (getconf_dir
);
1214 size_t speclen
= strlen (spec
);
1216 char name
[getconf_dirlen
+ sizeof ("/POSIX_V6_") + speclen
];
1217 memcpy (mempcpy (mempcpy (name
, getconf_dir
, getconf_dirlen
),
1218 "/POSIX_V6_", sizeof ("/POSIX_V6_") - 1),
1222 long int ret
= __xstat64 (_STAT_VER
, name
, &st
) >= 0 ? 1 : -1;
1224 __set_errno (save_errno
);