1 /* Copyright (C) 1991-2021 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 <https://www.gnu.org/licenses/>. */
28 #include <sys/param.h>
30 #include <sys/sysinfo.h>
31 #include <sys/types.h>
35 #include <sysconf-pthread_stack_min.h>
37 #define NEED_SPEC_ARRAY 0
38 #include <posix-conf-vars.h>
40 #define NEED_CHECK_SPEC \
41 (!defined _XBS5_ILP32_OFF32 || !defined _XBS5_ILP32_OFFBIG \
42 || !defined _XBS5_LP64_OFF64 || !defined _XBS5_LPBIG_OFFBIG \
43 || !defined _POSIX_V6_ILP32_OFF32 || !defined _POSIX_V6_ILP32_OFFBIG \
44 || !defined _POSIX_V6_LP64_OFF64 || !defined _POSIX_V6_LPBIG_OFFBIG \
45 || !defined _POSIX_V7_ILP32_OFF32 || !defined _POSIX_V7_ILP32_OFFBIG \
46 || !defined _POSIX_V7_LP64_OFF64 || !defined _POSIX_V7_LPBIG_OFFBIG)
48 static long int __sysconf_check_spec (const char *spec
);
52 /* Get the value of the system variable NAME. */
58 /* Also add obsolete or unnecessarily added constants here. */
59 case _SC_EQUIV_CLASS_MAX
:
75 return __get_child_max ();
79 return __getclktck ();
89 return __getdtablesize ();
101 case _SC_JOB_CONTROL
:
102 #if CONF_IS_DEFINED_SET (_POSIX_JOB_CONTROL)
103 return _POSIX_JOB_CONTROL
;
109 #if CONF_IS_DEFINED_SET (_POSIX_SAVED_IDS)
115 case _SC_REALTIME_SIGNALS
:
116 #if CONF_IS_DEFINED_SET (_POSIX_REALTIME_SIGNALS)
117 return _POSIX_REALTIME_SIGNALS
;
122 case _SC_PRIORITY_SCHEDULING
:
123 #if CONF_IS_DEFINED_SET (_POSIX_PRIORITY_SCHEDULING)
124 return _POSIX_PRIORITY_SCHEDULING
;
130 #if CONF_IS_DEFINED_SET (_POSIX_TIMERS)
131 return _POSIX_TIMERS
;
136 case _SC_ASYNCHRONOUS_IO
:
137 #if CONF_IS_DEFINED_SET (_POSIX_ASYNCHRONOUS_IO)
138 return _POSIX_ASYNCHRONOUS_IO
;
143 case _SC_PRIORITIZED_IO
:
144 #if CONF_IS_DEFINED_SET (_POSIX_PRIORITIZED_IO)
145 return _POSIX_PRIORITIZED_IO
;
150 case _SC_SYNCHRONIZED_IO
:
151 #if CONF_IS_DEFINED_SET (_POSIX_SYNCHRONIZED_IO)
152 return _POSIX_SYNCHRONIZED_IO
;
158 #if CONF_IS_DEFINED_SET (_POSIX_FSYNC)
164 case _SC_MAPPED_FILES
:
165 #if CONF_IS_DEFINED_SET (_POSIX_MAPPED_FILES)
166 return _POSIX_MAPPED_FILES
;
172 #if CONF_IS_DEFINED_SET (_POSIX_MEMLOCK)
173 return _POSIX_MEMLOCK
;
178 case _SC_MEMLOCK_RANGE
:
179 #if CONF_IS_DEFINED_SET (_POSIX_MEMLOCK_RANGE)
180 return _POSIX_MEMLOCK_RANGE
;
185 case _SC_MEMORY_PROTECTION
:
186 #if CONF_IS_DEFINED_SET (_POSIX_MEMORY_PROTECTION)
187 return _POSIX_MEMORY_PROTECTION
;
192 case _SC_MESSAGE_PASSING
:
193 #if CONF_IS_DEFINED_SET (_POSIX_MESSAGE_PASSING)
194 return _POSIX_MESSAGE_PASSING
;
200 #if CONF_IS_DEFINED_SET (_POSIX_SEMAPHORES)
201 return _POSIX_SEMAPHORES
;
206 case _SC_SHARED_MEMORY_OBJECTS
:
207 #if CONF_IS_DEFINED_SET (_POSIX_SHARED_MEMORY_OBJECTS)
208 return _POSIX_SHARED_MEMORY_OBJECTS
;
214 return _POSIX_VERSION
;
217 return __getpagesize ();
219 case _SC_AIO_LISTIO_MAX
:
220 #ifdef AIO_LISTIO_MAX
221 return AIO_LISTIO_MAX
;
233 case _SC_AIO_PRIO_DELTA_MAX
:
234 #ifdef AIO_PRIO_DELTA_MAX
235 return AIO_PRIO_DELTA_MAX
;
240 case _SC_DELAYTIMER_MAX
:
241 #ifdef DELAYTIMER_MAX
242 return DELAYTIMER_MAX
;
247 case _SC_MQ_OPEN_MAX
:
254 case _SC_MQ_PRIO_MAX
:
268 case _SC_SEM_NSEMS_MAX
:
270 return SEM_NSEMS_MAX
;
275 case _SC_SEM_VALUE_MAX
:
277 return SEM_VALUE_MAX
;
282 case _SC_SIGQUEUE_MAX
:
296 case _SC_BC_BASE_MAX
:
310 case _SC_BC_SCALE_MAX
:
317 case _SC_BC_STRING_MAX
:
319 return BC_STRING_MAX
;
324 case _SC_COLL_WEIGHTS_MAX
:
325 #ifdef COLL_WEIGHTS_MAX
326 return COLL_WEIGHTS_MAX
;
331 case _SC_EXPR_NEST_MAX
:
333 return EXPR_NEST_MAX
;
352 case _SC_CHARCLASS_NAME_MAX
:
353 #ifdef CHARCLASS_NAME_MAX
354 return CHARCLASS_NAME_MAX
;
360 #if CONF_IS_DEFINED_SET (_POSIX_PII)
367 #if CONF_IS_DEFINED_SET (_POSIX_PII_XTI)
374 #if CONF_IS_DEFINED_SET (_POSIX_PII_SOCKET)
380 case _SC_PII_INTERNET
:
381 #if CONF_IS_DEFINED_SET (_POSIX_PII_INTERNET)
388 #if CONF_IS_DEFINED_SET (_POSIX_PII_OSI)
395 #if CONF_IS_DEFINED_SET (_POSIX_POLL)
402 #if CONF_IS_DEFINED_SET (_POSIX_SELECT)
408 /* The same as _SC_IOV_MAX. */
416 case _SC_PII_INTERNET_STREAM
:
417 #if CONF_IS_DEFINED_SET (_POSIX_PII_INTERNET_STREAM)
423 case _SC_PII_INTERNET_DGRAM
:
424 #if CONF_IS_DEFINED_SET (_POSIX_PII_INTERNET_DGRAM)
430 case _SC_PII_OSI_COTS
:
431 #if CONF_IS_DEFINED_SET (_POSIX_PII_OSI_COTS)
437 case _SC_PII_OSI_CLTS
:
438 #if CONF_IS_DEFINED_SET (_POSIX_PII_OSI_CLTS)
445 #if CONF_IS_DEFINED_SET (_POSIX_PII_OSI_M)
459 return _POSIX2_VERSION
;
462 #ifdef _POSIX2_C_BIND
463 return _POSIX2_C_BIND
;
470 return _POSIX2_C_DEV
;
475 case _SC_2_C_VERSION
:
476 #ifdef _POSIX2_C_VERSION
477 return _POSIX2_C_VERSION
;
483 #ifdef _POSIX2_FORT_DEV
484 return _POSIX2_FORT_DEV
;
490 #ifdef _POSIX2_FORT_RUN
491 return _POSIX2_FORT_RUN
;
496 case _SC_2_LOCALEDEF
:
497 #ifdef _POSIX2_LOCALEDEF
498 return _POSIX2_LOCALEDEF
;
504 #ifdef _POSIX2_SW_DEV
505 return _POSIX2_SW_DEV
;
510 case _SC_2_CHAR_TERM
:
511 #ifdef _POSIX2_CHAR_TERM
512 return _POSIX2_CHAR_TERM
;
524 /* POSIX 1003.1c (POSIX Threads). */
526 #if CONF_IS_DEFINED_SET (_POSIX_THREADS)
527 return _POSIX_THREADS
;
532 case _SC_THREAD_SAFE_FUNCTIONS
:
533 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_SAFE_FUNCTIONS)
534 return _POSIX_THREAD_SAFE_FUNCTIONS
;
539 case _SC_GETGR_R_SIZE_MAX
:
540 return NSS_BUFLEN_GROUP
;
542 case _SC_GETPW_R_SIZE_MAX
:
543 return NSS_BUFLEN_PASSWD
;
545 case _SC_LOGIN_NAME_MAX
:
546 #ifdef LOGIN_NAME_MAX
547 return LOGIN_NAME_MAX
;
552 case _SC_TTY_NAME_MAX
:
559 case _SC_THREAD_DESTRUCTOR_ITERATIONS
:
560 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_DESTRUCTOR_ITERATIONS)
561 return _POSIX_THREAD_DESTRUCTOR_ITERATIONS
;
566 case _SC_THREAD_KEYS_MAX
:
567 #ifdef PTHREAD_KEYS_MAX
568 return PTHREAD_KEYS_MAX
;
573 case _SC_THREAD_STACK_MIN
:
574 return __get_pthread_stack_min ();
576 case _SC_THREAD_THREADS_MAX
:
577 #ifdef PTHREAD_THREADS_MAX
578 return PTHREAD_THREADS_MAX
;
583 case _SC_THREAD_ATTR_STACKADDR
:
584 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_ATTR_STACKADDR)
585 return _POSIX_THREAD_ATTR_STACKADDR
;
590 case _SC_THREAD_ATTR_STACKSIZE
:
591 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_ATTR_STACKSIZE)
592 return _POSIX_THREAD_ATTR_STACKSIZE
;
597 case _SC_THREAD_PRIORITY_SCHEDULING
:
598 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_PRIORITY_SCHEDULING)
599 return _POSIX_THREAD_PRIORITY_SCHEDULING
;
604 case _SC_THREAD_PRIO_INHERIT
:
605 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_PRIO_INHERIT)
606 return _POSIX_THREAD_PRIO_INHERIT
;
611 case _SC_THREAD_PRIO_PROTECT
:
612 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_PRIO_PROTECT)
613 return _POSIX_THREAD_PRIO_PROTECT
;
618 case _SC_THREAD_PROCESS_SHARED
:
619 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_PROCESS_SHARED)
620 return _POSIX_THREAD_PROCESS_SHARED
;
625 case _SC_NPROCESSORS_CONF
:
626 return __get_nprocs_conf ();
628 case _SC_NPROCESSORS_ONLN
:
629 return __get_nprocs ();
632 return __get_phys_pages ();
634 case _SC_AVPHYS_PAGES
:
635 return __get_avphys_pages ();
638 /* We have no limit since we use lists. */
642 /* We have no limit but since the return value might be used to
643 allocate a buffer we restrict the value. */
646 case _SC_XOPEN_VERSION
:
647 return _XOPEN_VERSION
;
649 case _SC_XOPEN_XCU_VERSION
:
650 return _XOPEN_XCU_VERSION
;
655 case _SC_XOPEN_CRYPT
:
662 case _SC_XOPEN_ENH_I18N
:
663 #ifdef _XOPEN_ENH_I18N
664 return _XOPEN_ENH_I18N
;
713 return sizeof (long int) * CHAR_BIT
;
716 return sizeof (int) * CHAR_BIT
;
725 return _POSIX_SSIZE_MAX
;
793 #define START_ENV_GROUP(VERSION) \
796 #define END_ENV_GROUP(VERSION) \
799 #define KNOWN_ABSENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX) \
800 case _SC_##SC_PREFIX##_##SUFFIX: \
801 return _##ENV_PREFIX##_##SUFFIX;
803 #define KNOWN_PRESENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX) \
804 case _SC_##SC_PREFIX##_##SUFFIX: \
805 return _##ENV_PREFIX##_##SUFFIX;
807 #define UNKNOWN_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX) \
808 case _SC_##SC_PREFIX##_##SUFFIX: \
809 return __sysconf_check_spec (#SUFFIX);
811 #include <posix/posix-envs.def>
813 #undef START_ENV_GROUP
815 #undef KNOWN_ABSENT_ENVIRONMENT
816 #undef KNOWN_PRESENT_ENVIRONMENT
817 #undef UNKNOWN_ENVIRONMENT
819 case _SC_XOPEN_LEGACY
:
820 return _XOPEN_LEGACY
;
822 case _SC_XOPEN_REALTIME
:
823 #ifdef _XOPEN_REALTIME
824 return _XOPEN_REALTIME
;
828 case _SC_XOPEN_REALTIME_THREADS
:
829 #ifdef _XOPEN_REALTIME_THREADS
830 return _XOPEN_REALTIME_THREADS
;
835 case _SC_ADVISORY_INFO
:
836 #if CONF_IS_DEFINED_SET (_POSIX_ADVISORY_INFO)
837 return _POSIX_ADVISORY_INFO
;
843 #if CONF_IS_DEFINED_SET (_POSIX_BARRIERS)
844 return _POSIX_BARRIERS
;
850 #if CONF_IS_DEFINED_SET (_POSIX_BASE)
855 case _SC_C_LANG_SUPPORT
:
856 #if CONF_IS_DEFINED_SET (_POSIX_C_LANG_SUPPORT)
857 return _POSIX_C_LANG_SUPPORT
;
861 case _SC_C_LANG_SUPPORT_R
:
862 #if CONF_IS_DEFINED_SET (_POSIX_C_LANG_SUPPORT_R)
863 return _POSIX_C_LANG_SUPPORT_R
;
868 case _SC_CLOCK_SELECTION
:
869 #if CONF_IS_DEFINED_SET (_POSIX_CLOCK_SELECTION)
870 return _POSIX_CLOCK_SELECTION
;
876 #if CONF_IS_DEFINED_SET (_POSIX_CPUTIME)
877 return _POSIX_CPUTIME
;
883 #if CONF_IS_DEFINED_SET (_POSIX_DEVICE_IO)
884 return _POSIX_DEVICE_IO
;
888 case _SC_DEVICE_SPECIFIC
:
889 #if CONF_IS_DEFINED_SET (_POSIX_DEVICE_SPECIFIC)
890 return _POSIX_DEVICE_SPECIFIC
;
894 case _SC_DEVICE_SPECIFIC_R
:
895 #if CONF_IS_DEFINED_SET (_POSIX_DEVICE_SPECIFIC_R)
896 return _POSIX_DEVICE_SPECIFIC_R
;
902 #if CONF_IS_DEFINED_SET (_POSIX_FD_MGMT)
903 return _POSIX_FD_MGMT
;
909 #if CONF_IS_DEFINED_SET (_POSIX_FIFO)
915 #if CONF_IS_DEFINED_SET (_POSIX_PIPE)
921 case _SC_FILE_ATTRIBUTES
:
922 #if CONF_IS_DEFINED_SET (_POSIX_FILE_ATTRIBUTES)
923 return _POSIX_FILE_ATTRIBUTES
;
927 case _SC_FILE_LOCKING
:
928 #if CONF_IS_DEFINED_SET (_POSIX_FILE_LOCKING)
929 return _POSIX_FILE_LOCKING
;
933 case _SC_FILE_SYSTEM
:
934 #if CONF_IS_DEFINED_SET (_POSIX_FILE_SYSTEM)
935 return _POSIX_FILE_SYSTEM
;
940 case _SC_MONOTONIC_CLOCK
:
941 #if CONF_IS_DEFINED_SET (_POSIX_MONOTONIC_CLOCK)
942 return _POSIX_MONOTONIC_CLOCK
;
947 case _SC_MULTI_PROCESS
:
948 #if CONF_IS_DEFINED_SET (_POSIX_MULTI_PROCESS)
949 return _POSIX_MULTI_PROCESS
;
953 case _SC_SINGLE_PROCESS
:
954 #if CONF_IS_DEFINED_SET (_POSIX_SINGLE_PROCESS)
955 return _POSIX_SINGLE_PROCESS
;
961 #if CONF_IS_DEFINED_SET (_POSIX_NETWORKING)
962 return _POSIX_NETWORKING
;
967 case _SC_READER_WRITER_LOCKS
:
968 #if CONF_IS_DEFINED_SET (_POSIX_READER_WRITER_LOCKS)
969 return _POSIX_READER_WRITER_LOCKS
;
974 #if CONF_IS_DEFINED_SET (_POSIX_SPIN_LOCKS)
975 return _POSIX_SPIN_LOCKS
;
981 #if CONF_IS_DEFINED_SET (_POSIX_REGEXP)
982 return _POSIX_REGEXP
;
986 /* _REGEX_VERSION has been removed with IEEE Std 1003.1-2001/Cor 2-2004,
987 item XSH/TC2/D6/137. */
988 case _SC_REGEX_VERSION
:
992 #if CONF_IS_DEFINED_SET (_POSIX_SHELL)
999 #if CONF_IS_DEFINED (_POSIX_SIGNALS)
1000 return _POSIX_SIGNALS
;
1006 #if CONF_IS_DEFINED_SET (_POSIX_SPAWN)
1007 return _POSIX_SPAWN
;
1012 case _SC_SPORADIC_SERVER
:
1013 #if CONF_IS_DEFINED_SET (_POSIX_SPORADIC_SERVER)
1014 return _POSIX_SPORADIC_SERVER
;
1018 case _SC_THREAD_SPORADIC_SERVER
:
1019 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_SPORADIC_SERVER)
1020 return _POSIX_THREAD_SPORADIC_SERVER
;
1025 case _SC_SYSTEM_DATABASE
:
1026 #if CONF_IS_DEFINED_SET (_POSIX_SYSTEM_DATABASE)
1027 return _POSIX_SYSTEM_DATABASE
;
1031 case _SC_SYSTEM_DATABASE_R
:
1032 #if CONF_IS_DEFINED_SET (_POSIX_SYSTEM_DATABASE_R)
1033 return _POSIX_SYSTEM_DATABASE_R
;
1038 case _SC_THREAD_CPUTIME
:
1039 #if CONF_IS_DEFINED_SET (_POSIX_THREAD_CPUTIME)
1040 return _POSIX_THREAD_CPUTIME
;
1046 #if CONF_IS_DEFINED_SET (_POSIX_TIMEOUTS)
1047 return _POSIX_TIMEOUTS
;
1052 case _SC_TYPED_MEMORY_OBJECTS
:
1053 #if CONF_IS_DEFINED_SET (_POSIX_TYPED_MEMORY_OBJECTS)
1054 return _POSIX_TYPED_MEMORY_OBJECTS
;
1059 case _SC_USER_GROUPS
:
1060 #if CONF_IS_DEFINED_SET (_POSIX_USER_GROUPS)
1061 return _POSIX_USER_GROUPS
;
1065 case _SC_USER_GROUPS_R
:
1066 #if CONF_IS_DEFINED_SET (_POSIX_USER_GROUPS_R)
1067 return _POSIX_USER_GROUPS_R
;
1078 case _SC_2_PBS_ACCOUNTING
:
1079 #ifdef _POSIX2_PBS_ACCOUNTING
1080 return _POSIX2_PBS_ACCOUNTING
;
1084 case _SC_2_PBS_CHECKPOINT
:
1085 #ifdef _POSIX2_PBS_CHECKPOINT
1086 return _POSIX2_PBS_CHECKPOINT
;
1090 case _SC_2_PBS_LOCATE
:
1091 #ifdef _POSIX2_PBS_LOCATE
1092 return _POSIX2_PBS_LOCATE
;
1096 case _SC_2_PBS_MESSAGE
:
1097 #ifdef _POSIX2_PBS_MESSAGE
1098 return _POSIX2_PBS_MESSAGE
;
1102 case _SC_2_PBS_TRACK
:
1103 #ifdef _POSIX2_PBS_TRACK
1104 return _POSIX2_PBS_TRACK
;
1109 case _SC_SYMLOOP_MAX
:
1119 case _SC_HOST_NAME_MAX
:
1120 #ifdef HOST_NAME_MAX
1121 return HOST_NAME_MAX
;
1127 #if CONF_IS_DEFINED_SET (_POSIX_TRACE)
1128 return _POSIX_TRACE
;
1132 case _SC_TRACE_EVENT_FILTER
:
1133 #if CONF_IS_DEFINED_SET (_POSIX_TRACE_EVENT_FILTER)
1134 return _POSIX_TRACE_EVENT_FILTER
;
1138 case _SC_TRACE_INHERIT
:
1139 #if CONF_IS_DEFINED_SET (_POSIX_TRACE_INHERIT)
1140 return _POSIX_TRACE_INHERIT
;
1145 #if CONF_IS_DEFINED_SET (_POSIX_TRACE_LOG)
1146 return _POSIX_TRACE_LOG
;
1151 case _SC_TRACE_EVENT_NAME_MAX
:
1152 case _SC_TRACE_NAME_MAX
:
1153 case _SC_TRACE_SYS_MAX
:
1154 case _SC_TRACE_USER_EVENT_MAX
:
1155 /* No support for tracing. */
1157 case _SC_XOPEN_STREAMS
:
1158 /* No support for STREAMS. */
1161 case _SC_LEVEL1_ICACHE_SIZE
:
1162 case _SC_LEVEL1_ICACHE_ASSOC
:
1163 case _SC_LEVEL1_ICACHE_LINESIZE
:
1164 case _SC_LEVEL1_DCACHE_SIZE
:
1165 case _SC_LEVEL1_DCACHE_ASSOC
:
1166 case _SC_LEVEL1_DCACHE_LINESIZE
:
1167 case _SC_LEVEL2_CACHE_SIZE
:
1168 case _SC_LEVEL2_CACHE_ASSOC
:
1169 case _SC_LEVEL2_CACHE_LINESIZE
:
1170 case _SC_LEVEL3_CACHE_SIZE
:
1171 case _SC_LEVEL3_CACHE_ASSOC
:
1172 case _SC_LEVEL3_CACHE_LINESIZE
:
1173 case _SC_LEVEL4_CACHE_SIZE
:
1174 case _SC_LEVEL4_CACHE_ASSOC
:
1175 case _SC_LEVEL4_CACHE_LINESIZE
:
1176 /* In general we cannot determine these values. Therefore we
1177 return zero which indicates that no information is
1182 #if CONF_IS_DEFINED_SET (_POSIX_IPV6)
1188 case _SC_RAW_SOCKETS
:
1189 #if CONF_IS_DEFINED_SET (_POSIX_RAW_SOCKETS)
1190 return _POSIX_RAW_SOCKETS
;
1202 case _SC_MINSIGSTKSZ
:
1212 weak_alias (__sysconf
, sysconf
)
1213 libc_hidden_def (__sysconf
)
1217 __sysconf_check_spec (const char *spec
)
1219 int save_errno
= errno
;
1221 const char *getconf_dir
= __libc_secure_getenv ("GETCONF_DIR") ?: GETCONF_DIR
;
1222 size_t getconf_dirlen
= strlen (getconf_dir
);
1223 size_t speclen
= strlen (spec
);
1225 char name
[getconf_dirlen
+ sizeof ("/POSIX_V6_") + speclen
];
1226 memcpy (mempcpy (mempcpy (name
, getconf_dir
, getconf_dirlen
),
1227 "/POSIX_V6_", sizeof ("/POSIX_V6_") - 1),
1230 struct __stat64_t64 st
;
1231 long int ret
= __stat64_time64 (name
, &st
) >= 0 ? 1 : -1;
1233 __set_errno (save_errno
);