4 * Copyright (c) 1997-2002, Larry Wall
6 * You may distribute under the terms of either the GNU General Public
7 * License or the Artistic License, as specified in the README file.
9 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
10 * This file is built by reentrl.pl from data in reentr.pl.
16 #ifdef USE_REENTRANT_API
18 /* Deprecations: some platforms have the said reentrant interfaces
19 * but they are declared obsolete and are not to be used. Often this
20 * means that the platform has threadsafed the interfaces (hopefully).
21 * All this is OS version dependent, so we are of course fooling ourselves.
22 * If you know of more deprecations on some platforms, please add your own. */
27 # undef HAS_ENDGRENT_R
28 # undef HAS_ENDPWENT_R
29 # undef HAS_GETGRENT_R
30 # undef HAS_GETPWENT_R
31 # undef HAS_SETLOCALE_R
33 # undef HAS_STRERROR_R
34 # define NETDB_R_OBSOLETE
37 #if defined(__osf__) && defined(__alpha) /* Tru64 aka Digital UNIX */
39 # undef HAS_STRERROR_R
40 # define NETDB_R_OBSOLETE
43 #ifdef NETDB_R_OBSOLETE
44 # undef HAS_ENDHOSTENT_R
45 # undef HAS_ENDNETENT_R
46 # undef HAS_ENDPROTOENT_R
47 # undef HAS_ENDSERVENT_R
48 # undef HAS_GETHOSTBYADDR_R
49 # undef HAS_GETHOSTBYNAME_R
50 # undef HAS_GETHOSTENT_R
51 # undef HAS_GETNETBYADDR_R
52 # undef HAS_GETNETBYNAME_R
53 # undef HAS_GETNETENT_R
54 # undef HAS_GETPROTOBYNAME_R
55 # undef HAS_GETPROTOBYNUMBER_R
56 # undef HAS_GETPROTOENT_R
57 # undef HAS_GETSERVBYNAME_R
58 # undef HAS_GETSERVBYPORT_R
59 # undef HAS_GETSERVENT_R
60 # undef HAS_SETHOSTENT_R
61 # undef HAS_SETNETENT_R
62 # undef HAS_SETPROTOENT_R
63 # undef HAS_SETSERVENT_R
76 # include <stdlib.h> /* drand48_data */
89 #define REENTRANT_PROTO_B_B 1
90 #define REENTRANT_PROTO_B_BI 2
91 #define REENTRANT_PROTO_B_BW 3
92 #define REENTRANT_PROTO_B_CCS 4
93 #define REENTRANT_PROTO_B_IBI 5
94 #define REENTRANT_PROTO_B_IBW 6
95 #define REENTRANT_PROTO_B_SB 7
96 #define REENTRANT_PROTO_B_SBI 8
97 #define REENTRANT_PROTO_I_BI 9
98 #define REENTRANT_PROTO_I_BW 10
99 #define REENTRANT_PROTO_I_CCSBWR 11
100 #define REENTRANT_PROTO_I_CCSD 12
101 #define REENTRANT_PROTO_I_CII 13
102 #define REENTRANT_PROTO_I_CIISD 14
103 #define REENTRANT_PROTO_I_CSBI 15
104 #define REENTRANT_PROTO_I_CSBIR 16
105 #define REENTRANT_PROTO_I_CSBWR 17
106 #define REENTRANT_PROTO_I_CSBWRE 18
107 #define REENTRANT_PROTO_I_CSD 19
108 #define REENTRANT_PROTO_I_CWISBWRE 20
109 #define REENTRANT_PROTO_I_CWISD 21
110 #define REENTRANT_PROTO_I_H 22
111 #define REENTRANT_PROTO_I_IBI 23
112 #define REENTRANT_PROTO_I_IBW 24
113 #define REENTRANT_PROTO_I_ICBI 25
114 #define REENTRANT_PROTO_I_ICSBWR 26
115 #define REENTRANT_PROTO_I_ICSD 27
116 #define REENTRANT_PROTO_I_ID 28
117 #define REENTRANT_PROTO_I_IISD 29
118 #define REENTRANT_PROTO_I_ISBWR 30
119 #define REENTRANT_PROTO_I_ISD 31
120 #define REENTRANT_PROTO_I_LISBI 32
121 #define REENTRANT_PROTO_I_LISD 33
122 #define REENTRANT_PROTO_I_LS 34
123 #define REENTRANT_PROTO_I_S 35
124 #define REENTRANT_PROTO_I_SB 36
125 #define REENTRANT_PROTO_I_SBI 37
126 #define REENTRANT_PROTO_I_SBIE 38
127 #define REENTRANT_PROTO_I_SBIH 39
128 #define REENTRANT_PROTO_I_SBIR 40
129 #define REENTRANT_PROTO_I_SBWR 41
130 #define REENTRANT_PROTO_I_SBWRE 42
131 #define REENTRANT_PROTO_I_SD 43
132 #define REENTRANT_PROTO_I_ST 44
133 #define REENTRANT_PROTO_I_TISD 45
134 #define REENTRANT_PROTO_I_TS 46
135 #define REENTRANT_PROTO_I_TSBI 47
136 #define REENTRANT_PROTO_I_TSBIR 48
137 #define REENTRANT_PROTO_I_TSBWR 49
138 #define REENTRANT_PROTO_I_TSR 50
139 #define REENTRANT_PROTO_I_UISBWRE 51
140 #define REENTRANT_PROTO_S_CBI 52
141 #define REENTRANT_PROTO_S_CCSBI 53
142 #define REENTRANT_PROTO_S_CIISBIE 54
143 #define REENTRANT_PROTO_S_CSBI 55
144 #define REENTRANT_PROTO_S_CSBIE 56
145 #define REENTRANT_PROTO_S_CWISBIE 57
146 #define REENTRANT_PROTO_S_CWISBWIE 58
147 #define REENTRANT_PROTO_S_ICSBI 59
148 #define REENTRANT_PROTO_S_ISBI 60
149 #define REENTRANT_PROTO_S_LISBI 61
150 #define REENTRANT_PROTO_S_SBI 62
151 #define REENTRANT_PROTO_S_SBIE 63
152 #define REENTRANT_PROTO_S_SBW 64
153 #define REENTRANT_PROTO_S_TISBI 65
154 #define REENTRANT_PROTO_S_TS 66
155 #define REENTRANT_PROTO_S_TSBI 67
156 #define REENTRANT_PROTO_S_TSBIE 68
157 #define REENTRANT_PROTO_S_TWISBIE 69
158 #define REENTRANT_PROTO_V_H 70
159 #define REENTRANT_PROTO_V_ID 71
160 #define REENTRANT_PROTO_V_S 72
162 /* Defines for indicating which special features are supported. */
164 /* The getgrent getgrgid getgrnam using ptr? */
166 #if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR)
167 # define GETGRENT_R_HAS_PTR
169 # undef GETGRENT_R_HAS_PTR
171 #if defined(HAS_GETGRGID_R) && (GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR)
172 # define GETGRGID_R_HAS_PTR
174 # undef GETGRGID_R_HAS_PTR
176 #if defined(HAS_GETGRNAM_R) && (GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR)
177 # define GETGRNAM_R_HAS_PTR
179 # undef GETGRNAM_R_HAS_PTR
182 /* Any of the getgrent getgrgid getgrnam using ptr? */
184 #if (defined(GETGRENT_R_HAS_PTR) || defined(GETGRGID_R_HAS_PTR) || defined(GETGRNAM_R_HAS_PTR))
185 # define USE_GETGRENT_PTR
187 # undef USE_GETGRENT_PTR
190 /* The getpwent getpwnam getpwuid using ptr? */
192 #if defined(HAS_GETPWENT_R) && (GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIR)
193 # define GETPWENT_R_HAS_PTR
195 # undef GETPWENT_R_HAS_PTR
197 #if defined(HAS_GETPWNAM_R) && (GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR)
198 # define GETPWNAM_R_HAS_PTR
200 # undef GETPWNAM_R_HAS_PTR
202 #if defined(HAS_GETPWUID_R) && (GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBIR)
203 # define GETPWUID_R_HAS_PTR
205 # undef GETPWUID_R_HAS_PTR
208 /* Any of the getpwent getpwnam getpwuid using ptr? */
210 #if (defined(GETPWENT_R_HAS_PTR) || defined(GETPWNAM_R_HAS_PTR) || defined(GETPWUID_R_HAS_PTR))
211 # define USE_GETPWENT_PTR
213 # undef USE_GETPWENT_PTR
216 /* The getspent getspnam using ptr? */
218 #if defined(HAS_GETSPNAM_R) && (GETSPNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR)
219 # define GETSPNAM_R_HAS_PTR
221 # undef GETSPNAM_R_HAS_PTR
224 /* Any of the getspent getspnam using ptr? */
226 #if (defined(GETSPENT_R_HAS_PTR) || defined(GETSPNAM_R_HAS_PTR))
227 # define USE_GETSPENT_PTR
229 # undef USE_GETSPENT_PTR
232 /* The getgrent getgrgid getgrnam using fptr? */
234 #if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
235 # define GETGRENT_R_HAS_FPTR
237 # undef GETGRENT_R_HAS_FPTR
240 /* Any of the getgrent getgrgid getgrnam using fptr? */
242 #if (defined(GETGRENT_R_HAS_FPTR) || defined(GETGRGID_R_HAS_FPTR) || defined(GETGRNAM_R_HAS_FPTR))
243 # define USE_GETGRENT_FPTR
245 # undef USE_GETGRENT_FPTR
248 /* The getpwent getpwnam getpwuid using fptr? */
250 #if defined(HAS_GETPWENT_R) && (GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
251 # define GETPWENT_R_HAS_FPTR
253 # undef GETPWENT_R_HAS_FPTR
256 /* Any of the getpwent getpwnam getpwuid using fptr? */
258 #if (defined(GETPWENT_R_HAS_FPTR) || defined(GETPWNAM_R_HAS_FPTR) || defined(GETPWUID_R_HAS_FPTR))
259 # define USE_GETPWENT_FPTR
261 # undef USE_GETPWENT_FPTR
264 /* The gethostent gethostbyaddr gethostbyname using ptr? */
266 #if defined(HAS_GETHOSTENT_R) && (GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBWRE)
267 # define GETHOSTENT_R_HAS_PTR
269 # undef GETHOSTENT_R_HAS_PTR
271 #if defined(HAS_GETHOSTBYADDR_R) && (GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISBWRE)
272 # define GETHOSTBYADDR_R_HAS_PTR
274 # undef GETHOSTBYADDR_R_HAS_PTR
276 #if defined(HAS_GETHOSTBYNAME_R) && (GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE)
277 # define GETHOSTBYNAME_R_HAS_PTR
279 # undef GETHOSTBYNAME_R_HAS_PTR
282 /* Any of the gethostent gethostbyaddr gethostbyname using ptr? */
284 #if (defined(GETHOSTENT_R_HAS_PTR) || defined(GETHOSTBYADDR_R_HAS_PTR) || defined(GETHOSTBYNAME_R_HAS_PTR))
285 # define USE_GETHOSTENT_PTR
287 # undef USE_GETHOSTENT_PTR
290 /* The getnetent getnetbyaddr getnetbyname using ptr? */
292 #if defined(HAS_GETNETENT_R) && (GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBWRE)
293 # define GETNETENT_R_HAS_PTR
295 # undef GETNETENT_R_HAS_PTR
297 #if defined(HAS_GETNETBYADDR_R) && (GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE)
298 # define GETNETBYADDR_R_HAS_PTR
300 # undef GETNETBYADDR_R_HAS_PTR
302 #if defined(HAS_GETNETBYNAME_R) && (GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE)
303 # define GETNETBYNAME_R_HAS_PTR
305 # undef GETNETBYNAME_R_HAS_PTR
308 /* Any of the getnetent getnetbyaddr getnetbyname using ptr? */
310 #if (defined(GETNETENT_R_HAS_PTR) || defined(GETNETBYADDR_R_HAS_PTR) || defined(GETNETBYNAME_R_HAS_PTR))
311 # define USE_GETNETENT_PTR
313 # undef USE_GETNETENT_PTR
316 /* The getprotoent getprotobyname getprotobynumber using ptr? */
318 #if defined(HAS_GETPROTOENT_R) && (GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBWR)
319 # define GETPROTOENT_R_HAS_PTR
321 # undef GETPROTOENT_R_HAS_PTR
323 #if defined(HAS_GETPROTOBYNAME_R) && (GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWR)
324 # define GETPROTOBYNAME_R_HAS_PTR
326 # undef GETPROTOBYNAME_R_HAS_PTR
328 #if defined(HAS_GETPROTOBYNUMBER_R) && (GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISBWR)
329 # define GETPROTOBYNUMBER_R_HAS_PTR
331 # undef GETPROTOBYNUMBER_R_HAS_PTR
334 /* Any of the getprotoent getprotobyname getprotobynumber using ptr? */
336 #if (defined(GETPROTOENT_R_HAS_PTR) || defined(GETPROTOBYNAME_R_HAS_PTR) || defined(GETPROTOBYNUMBER_R_HAS_PTR))
337 # define USE_GETPROTOENT_PTR
339 # undef USE_GETPROTOENT_PTR
342 /* The getservent getservbyname getservbyport using ptr? */
344 #if defined(HAS_GETSERVENT_R) && (GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBWR)
345 # define GETSERVENT_R_HAS_PTR
347 # undef GETSERVENT_R_HAS_PTR
349 #if defined(HAS_GETSERVBYNAME_R) && (GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSBWR)
350 # define GETSERVBYNAME_R_HAS_PTR
352 # undef GETSERVBYNAME_R_HAS_PTR
354 #if defined(HAS_GETSERVBYPORT_R) && (GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSBWR)
355 # define GETSERVBYPORT_R_HAS_PTR
357 # undef GETSERVBYPORT_R_HAS_PTR
360 /* Any of the getservent getservbyname getservbyport using ptr? */
362 #if (defined(GETSERVENT_R_HAS_PTR) || defined(GETSERVBYNAME_R_HAS_PTR) || defined(GETSERVBYPORT_R_HAS_PTR))
363 # define USE_GETSERVENT_PTR
365 # undef USE_GETSERVENT_PTR
368 /* The gethostent gethostbyaddr gethostbyname using errno? */
370 #if defined(HAS_GETHOSTENT_R) && (GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBWRE || GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBIE || GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBIE)
371 # define GETHOSTENT_R_HAS_ERRNO
373 # undef GETHOSTENT_R_HAS_ERRNO
375 #if defined(HAS_GETHOSTBYADDR_R) && (GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISBWRE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBWIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TWISBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CIISBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CSBIE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TSBIE)
376 # define GETHOSTBYADDR_R_HAS_ERRNO
378 # undef GETHOSTBYADDR_R_HAS_ERRNO
380 #if defined(HAS_GETHOSTBYNAME_R) && (GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE || GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBIE)
381 # define GETHOSTBYNAME_R_HAS_ERRNO
383 # undef GETHOSTBYNAME_R_HAS_ERRNO
386 /* Any of the gethostent gethostbyaddr gethostbyname using errno? */
388 #if (defined(GETHOSTENT_R_HAS_ERRNO) || defined(GETHOSTBYADDR_R_HAS_ERRNO) || defined(GETHOSTBYNAME_R_HAS_ERRNO))
389 # define USE_GETHOSTENT_ERRNO
391 # undef USE_GETHOSTENT_ERRNO
394 /* The getnetent getnetbyaddr getnetbyname using errno? */
396 #if defined(HAS_GETNETENT_R) && (GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBWRE || GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBIE || GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBIE)
397 # define GETNETENT_R_HAS_ERRNO
399 # undef GETNETENT_R_HAS_ERRNO
401 #if defined(HAS_GETNETBYADDR_R) && (GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE)
402 # define GETNETBYADDR_R_HAS_ERRNO
404 # undef GETNETBYADDR_R_HAS_ERRNO
406 #if defined(HAS_GETNETBYNAME_R) && (GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE)
407 # define GETNETBYNAME_R_HAS_ERRNO
409 # undef GETNETBYNAME_R_HAS_ERRNO
412 /* Any of the getnetent getnetbyaddr getnetbyname using errno? */
414 #if (defined(GETNETENT_R_HAS_ERRNO) || defined(GETNETBYADDR_R_HAS_ERRNO) || defined(GETNETBYNAME_R_HAS_ERRNO))
415 # define USE_GETNETENT_ERRNO
417 # undef USE_GETNETENT_ERRNO
423 char* _asctime_buffer;
424 size_t _asctime_size;
425 #endif /* HAS_ASCTIME_R */
427 struct crypt_data _crypt_struct;
428 #endif /* HAS_CRYPT_R */
432 #endif /* HAS_CTIME_R */
434 struct drand48_data _drand48_struct;
435 double _drand48_double;
436 #endif /* HAS_DRAND48_R */
437 #ifdef HAS_GETGRNAM_R
438 struct group _getgrent_struct;
439 char* _getgrent_buffer;
440 size_t _getgrent_size;
441 # ifdef USE_GETGRENT_PTR
442 struct group* _getgrent_ptr;
444 # ifdef USE_GETGRENT_FPTR
445 FILE* _getgrent_fptr;
447 #endif /* HAS_GETGRNAM_R */
448 #ifdef HAS_GETHOSTBYNAME_R
449 struct hostent _gethostent_struct;
450 # if GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
451 struct hostent_data* _gethostent_data;
453 char* _gethostent_buffer;
454 size_t _gethostent_size;
456 # ifdef USE_GETHOSTENT_PTR
457 struct hostent* _gethostent_ptr;
459 # ifdef USE_GETHOSTENT_ERRNO
460 int _gethostent_errno;
462 #endif /* HAS_GETHOSTBYNAME_R */
463 #ifdef HAS_GETLOGIN_R
464 char* _getlogin_buffer;
465 size_t _getlogin_size;
466 #endif /* HAS_GETLOGIN_R */
467 #ifdef HAS_GETNETBYNAME_R
468 struct netent _getnetent_struct;
469 # if GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
470 struct netent_data* _getnetent_data;
472 char* _getnetent_buffer;
473 size_t _getnetent_size;
475 # ifdef USE_GETNETENT_PTR
476 struct netent* _getnetent_ptr;
478 # ifdef USE_GETNETENT_ERRNO
479 int _getnetent_errno;
481 #endif /* HAS_GETNETBYNAME_R */
482 #ifdef HAS_GETPROTOBYNAME_R
483 struct protoent _getprotoent_struct;
484 # if GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
485 struct protoent_data* _getprotoent_data;
487 char* _getprotoent_buffer;
488 size_t _getprotoent_size;
490 # ifdef USE_GETPROTOENT_PTR
491 struct protoent* _getprotoent_ptr;
493 # ifdef USE_GETPROTOENT_ERRNO
494 int _getprotoent_errno;
496 #endif /* HAS_GETPROTOBYNAME_R */
497 #ifdef HAS_GETPWNAM_R
498 struct passwd _getpwent_struct;
499 char* _getpwent_buffer;
500 size_t _getpwent_size;
501 # ifdef USE_GETPWENT_PTR
502 struct passwd* _getpwent_ptr;
504 # ifdef USE_GETPWENT_FPTR
505 FILE* _getpwent_fptr;
507 #endif /* HAS_GETPWNAM_R */
508 #ifdef HAS_GETSERVBYNAME_R
509 struct servent _getservent_struct;
510 # if GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSD
511 struct servent_data* _getservent_data;
513 char* _getservent_buffer;
514 size_t _getservent_size;
516 # ifdef USE_GETSERVENT_PTR
517 struct servent* _getservent_ptr;
519 # ifdef USE_GETSERVENT_ERRNO
520 int _getservent_errno;
522 #endif /* HAS_GETSERVBYNAME_R */
523 #ifdef HAS_GETSPNAM_R
524 struct spwd _getspent_struct;
525 char* _getspent_buffer;
526 size_t _getspent_size;
527 # ifdef USE_GETSPENT_PTR
528 struct spwd* _getspent_ptr;
530 #endif /* HAS_GETSPNAM_R */
532 struct tm _gmtime_struct;
533 #endif /* HAS_GMTIME_R */
534 #ifdef HAS_LOCALTIME_R
535 struct tm _localtime_struct;
536 #endif /* HAS_LOCALTIME_R */
538 struct random_data _random_struct;
539 #endif /* HAS_RANDOM_R */
541 struct dirent* _readdir_struct;
542 size_t _readdir_size;
543 # if READDIR_R_PROTO == REENTRANT_PROTO_I_TSR
544 struct dirent* _readdir_ptr;
546 #endif /* HAS_READDIR_R */
547 #ifdef HAS_READDIR64_R
548 struct dirent64* _readdir64_struct;
549 size_t _readdir64_size;
550 # if READDIR64_R_PROTO == REENTRANT_PROTO_I_TSR
551 struct dirent64* _readdir64_ptr;
553 #endif /* HAS_READDIR64_R */
554 #ifdef HAS_SETLOCALE_R
555 char* _setlocale_buffer;
556 size_t _setlocale_size;
557 #endif /* HAS_SETLOCALE_R */
558 #ifdef HAS_STRERROR_R
559 char* _strerror_buffer;
560 size_t _strerror_size;
561 #endif /* HAS_STRERROR_R */
563 char* _ttyname_buffer;
564 size_t _ttyname_size;
565 #endif /* HAS_TTYNAME_R */
573 # if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_B_SB
574 # define asctime(a) asctime_r(a, PL_reentrant_buffer->_asctime_buffer)
576 # if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_B_SBI
577 # define asctime(a) asctime_r(a, PL_reentrant_buffer->_asctime_buffer, PL_reentrant_buffer->_asctime_size)
579 # if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_I_SB
580 # define asctime(a) (((errno = asctime_r(a, PL_reentrant_buffer->_asctime_buffer))) == 0 ? PL_reentrant_buffer->_asctime_buffer : 0)
582 # if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_I_SBI
583 # define asctime(a) (((errno = asctime_r(a, PL_reentrant_buffer->_asctime_buffer, PL_reentrant_buffer->_asctime_size))) == 0 ? PL_reentrant_buffer->_asctime_buffer : 0)
585 #endif /* HAS_ASCTIME_R */
589 # if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCS
590 # define crypt(a, b) crypt_r(a, b, &PL_reentrant_buffer->_crypt_struct)
592 #endif /* HAS_CRYPT_R */
596 # if !defined(ctermid) && CTERMID_R_PROTO == REENTRANT_PROTO_B_B
597 # define ctermid(a) ctermid_r(a)
599 #endif /* HAS_CTERMID_R */
603 # if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_B_SB
604 # define ctime(a) ctime_r(a, PL_reentrant_buffer->_ctime_buffer)
606 # if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_B_SBI
607 # define ctime(a) ctime_r(a, PL_reentrant_buffer->_ctime_buffer, PL_reentrant_buffer->_ctime_size)
609 # if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_I_SB
610 # define ctime(a) (((errno = ctime_r(a, PL_reentrant_buffer->_ctime_buffer))) == 0 ? PL_reentrant_buffer->_ctime_buffer : 0)
612 # if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_I_SBI
613 # define ctime(a) (((errno = ctime_r(a, PL_reentrant_buffer->_ctime_buffer, PL_reentrant_buffer->_ctime_size))) == 0 ? PL_reentrant_buffer->_ctime_buffer : 0)
615 #endif /* HAS_CTIME_R */
619 # if !defined(drand48) && DRAND48_R_PROTO == REENTRANT_PROTO_I_ST
620 # define drand48() (((errno = drand48_r(&PL_reentrant_buffer->_drand48_struct, &PL_reentrant_buffer->_drand48_double))) == 0 ? PL_reentrant_buffer->_drand48_double : 0)
622 #endif /* HAS_DRAND48_R */
624 #ifdef HAS_ENDGRENT_R
626 # if !defined(endgrent) && ENDGRENT_R_PROTO == REENTRANT_PROTO_I_H
627 # define endgrent() (((errno = endgrent_r(&PL_reentrant_buffer->_getgrent_fptr))) == 0 ? 1 : 0)
629 # if !defined(endgrent) && ENDGRENT_R_PROTO == REENTRANT_PROTO_V_H
630 # define endgrent() endgrent_r(&PL_reentrant_buffer->_getgrent_fptr)
632 #endif /* HAS_ENDGRENT_R */
634 #ifdef HAS_ENDHOSTENT_R
636 # if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_I_S
637 # define endhostent() (((errno = endhostent_r(&PL_reentrant_buffer->_gethostent_struct))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : 0)
639 # if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_V_S
640 # define endhostent() endhostent_r(&PL_reentrant_buffer->_gethostent_struct)
642 #endif /* HAS_ENDHOSTENT_R */
644 #ifdef HAS_ENDNETENT_R
646 # if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_I_S
647 # define endnetent() (((errno = endnetent_r(&PL_reentrant_buffer->_getnetent_struct))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
649 # if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_V_S
650 # define endnetent() endnetent_r(&PL_reentrant_buffer->_getnetent_struct)
652 #endif /* HAS_ENDNETENT_R */
654 #ifdef HAS_ENDPROTOENT_R
656 # if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_I_S
657 # define endprotoent() (((errno = endprotoent_r(&PL_reentrant_buffer->_getprotoent_struct))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : 0)
659 # if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_V_S
660 # define endprotoent() endprotoent_r(&PL_reentrant_buffer->_getprotoent_struct)
662 #endif /* HAS_ENDPROTOENT_R */
664 #ifdef HAS_ENDPWENT_R
666 # if !defined(endpwent) && ENDPWENT_R_PROTO == REENTRANT_PROTO_I_H
667 # define endpwent() (((errno = endpwent_r(&PL_reentrant_buffer->_getpwent_fptr))) == 0 ? 1 : 0)
669 # if !defined(endpwent) && ENDPWENT_R_PROTO == REENTRANT_PROTO_V_H
670 # define endpwent() endpwent_r(&PL_reentrant_buffer->_getpwent_fptr)
672 #endif /* HAS_ENDPWENT_R */
674 #ifdef HAS_ENDSERVENT_R
676 # if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_I_S
677 # define endservent() (((errno = endservent_r(&PL_reentrant_buffer->_getservent_struct))) == 0 ? &PL_reentrant_buffer->_getservent_struct : 0)
679 # if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_V_S
680 # define endservent() endservent_r(&PL_reentrant_buffer->_getservent_struct)
682 #endif /* HAS_ENDSERVENT_R */
684 #ifdef HAS_GETGRENT_R
686 # if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR
687 # define getgrent() (((errno = getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : 0)
689 # if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR
690 # define getgrent() (((errno = getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : 0)
692 # if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBW
693 # define getgrent() (getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? &PL_reentrant_buffer->_getgrent_struct : 0)
695 # if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBI
696 # define getgrent() (getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? &PL_reentrant_buffer->_getgrent_struct : 0)
698 # if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBI
699 # define getgrent() (((errno = getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size))) == 0 ? &PL_reentrant_buffer->_getgrent_struct : 0)
701 # if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIH
702 # define getgrent() (((errno = getgrent_r(&PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_fptr))) == 0 ? &PL_reentrant_buffer->_getgrent_struct : 0)
704 #endif /* HAS_GETGRENT_R */
706 #ifdef HAS_GETGRGID_R
708 # if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR
709 # define getgrgid(a) (((errno = getgrgid_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : 0)
711 # if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR
712 # define getgrgid(a) (((errno = getgrgid_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : 0)
714 # if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBI
715 # define getgrgid(a) (((errno = getgrgid_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size))) == 0 ? &PL_reentrant_buffer->_getgrent_struct : 0)
717 # if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_S_TSBI
718 # define getgrgid(a) (getgrgid_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? &PL_reentrant_buffer->_getgrent_struct : 0)
720 #endif /* HAS_GETGRGID_R */
722 #ifdef HAS_GETGRNAM_R
724 # if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR
725 # define getgrnam(a) (((errno = getgrnam_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : 0)
727 # if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR
728 # define getgrnam(a) (((errno = getgrnam_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size, &PL_reentrant_buffer->_getgrent_ptr))) == 0 ? PL_reentrant_buffer->_getgrent_ptr : 0)
730 # if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CBI
731 # define getgrnam(a) (getgrnam_r(a, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? PL_reentrant_buffer->_getgrent_buffer : 0)
733 # if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBI
734 # define getgrnam(a) (((errno = getgrnam_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size))) == 0 ? &PL_reentrant_buffer->_getgrent_struct : 0)
736 # if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CSBI
737 # define getgrnam(a) (getgrnam_r(a, &PL_reentrant_buffer->_getgrent_struct, PL_reentrant_buffer->_getgrent_buffer, PL_reentrant_buffer->_getgrent_size) ? &PL_reentrant_buffer->_getgrent_struct : 0)
739 #endif /* HAS_GETGRNAM_R */
741 #ifdef HAS_GETHOSTBYADDR_R
742 # undef gethostbyaddr
743 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISBWRE
744 # define gethostbyaddr(a, b, c) (((errno = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_ptr, &PL_reentrant_buffer->_gethostent_errno))) == 0 ? PL_reentrant_buffer->_gethostent_ptr : 0)
746 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBWIE
747 # define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : 0)
749 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBIE
750 # define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : 0)
752 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TWISBIE
753 # define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : 0)
755 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CIISBIE
756 # define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : 0)
758 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CSBIE
759 # define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? 1 : 0)
761 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TSBIE
762 # define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? 1 : 0)
764 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISD
765 # define gethostbyaddr(a, b, c) (((errno = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, &PL_reentrant_buffer->_gethostent_data))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : 0)
767 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CIISD
768 # define gethostbyaddr(a, b, c) (((errno = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_gethostent_struct, &PL_reentrant_buffer->_gethostent_data))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : 0)
770 # if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CII
771 # define gethostbyaddr(a, b, c) (((errno = gethostbyaddr_r(a, b, c))) == 0 ? 1 : 0)
773 #endif /* HAS_GETHOSTBYADDR_R */
775 #ifdef HAS_GETHOSTBYNAME_R
776 # undef gethostbyname
777 # if !defined(gethostbyname) && GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE
778 # define gethostbyname(a) (((errno = gethostbyname_r(a, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_ptr, &PL_reentrant_buffer->_gethostent_errno))) == 0 ? PL_reentrant_buffer->_gethostent_ptr : 0)
780 # if !defined(gethostbyname) && GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBIE
781 # define gethostbyname(a) (gethostbyname_r(a, &PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : 0)
783 # if !defined(gethostbyname) && GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
784 # define gethostbyname(a) (((errno = gethostbyname_r(a, &PL_reentrant_buffer->_gethostent_struct, &PL_reentrant_buffer->_gethostent_data))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : 0)
786 #endif /* HAS_GETHOSTBYNAME_R */
788 #ifdef HAS_GETHOSTENT_R
790 # if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBWRE
791 # define gethostent() (((errno = gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_ptr, &PL_reentrant_buffer->_gethostent_errno))) == 0 ? PL_reentrant_buffer->_gethostent_ptr : 0)
793 # if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBIE
794 # define gethostent() (((errno = gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : 0)
796 # if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBIE
797 # define gethostent() (gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size, &PL_reentrant_buffer->_gethostent_errno) ? &PL_reentrant_buffer->_gethostent_struct : 0)
799 # if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBI
800 # define gethostent() (gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size) ? &PL_reentrant_buffer->_gethostent_struct : 0)
802 # if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBI
803 # define gethostent() (((errno = gethostent_r(&PL_reentrant_buffer->_gethostent_struct, PL_reentrant_buffer->_gethostent_buffer, PL_reentrant_buffer->_gethostent_size))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : 0)
805 # if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SD
806 # define gethostent() (((errno = gethostent_r(&PL_reentrant_buffer->_gethostent_struct, &PL_reentrant_buffer->_gethostent_data))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : 0)
808 #endif /* HAS_GETHOSTENT_R */
810 #ifdef HAS_GETLOGIN_R
812 # if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_I_BW
813 # define getlogin() (((errno = getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size))) == 0 ? PL_reentrant_buffer->_getlogin_buffer : 0)
815 # if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_I_BI
816 # define getlogin() (((errno = getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size))) == 0 ? PL_reentrant_buffer->_getlogin_buffer : 0)
818 # if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_B_BW
819 # define getlogin() getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size)
821 # if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_B_BI
822 # define getlogin() getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size)
824 #endif /* HAS_GETLOGIN_R */
826 #ifdef HAS_GETNETBYADDR_R
828 # if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE
829 # define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_ptr, &PL_reentrant_buffer->_getnetent_errno))) == 0 ? PL_reentrant_buffer->_getnetent_ptr : 0)
831 # if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_LISBI
832 # define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
834 # if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_TISBI
835 # define getnetbyaddr(a, b) (getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size) ? &PL_reentrant_buffer->_getnetent_struct : 0)
837 # if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_LISBI
838 # define getnetbyaddr(a, b) (getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size) ? &PL_reentrant_buffer->_getnetent_struct : 0)
840 # if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_TISD
841 # define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
843 # if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_LISD
844 # define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
846 # if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_IISD
847 # define getnetbyaddr(a, b) (((errno = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
849 #endif /* HAS_GETNETBYADDR_R */
851 #ifdef HAS_GETNETBYNAME_R
853 # if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE
854 # define getnetbyname(a) (((errno = getnetbyname_r(a, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_ptr, &PL_reentrant_buffer->_getnetent_errno))) == 0 ? PL_reentrant_buffer->_getnetent_ptr : 0)
856 # if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBI
857 # define getnetbyname(a) (((errno = getnetbyname_r(a, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
859 # if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI
860 # define getnetbyname(a) (getnetbyname_r(a, &PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size) ? &PL_reentrant_buffer->_getnetent_struct : 0)
862 # if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
863 # define getnetbyname(a) (((errno = getnetbyname_r(a, &PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
865 #endif /* HAS_GETNETBYNAME_R */
867 #ifdef HAS_GETNETENT_R
869 # if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBWRE
870 # define getnetent() (((errno = getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_ptr, &PL_reentrant_buffer->_getnetent_errno))) == 0 ? PL_reentrant_buffer->_getnetent_ptr : 0)
872 # if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBIE
873 # define getnetent() (((errno = getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_errno))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
875 # if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBIE
876 # define getnetent() (getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size, &PL_reentrant_buffer->_getnetent_errno) ? &PL_reentrant_buffer->_getnetent_struct : 0)
878 # if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBI
879 # define getnetent() (getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size) ? &PL_reentrant_buffer->_getnetent_struct : 0)
881 # if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBI
882 # define getnetent() (((errno = getnetent_r(&PL_reentrant_buffer->_getnetent_struct, PL_reentrant_buffer->_getnetent_buffer, PL_reentrant_buffer->_getnetent_size))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
884 # if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SD
885 # define getnetent() (((errno = getnetent_r(&PL_reentrant_buffer->_getnetent_struct, &PL_reentrant_buffer->_getnetent_data))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
887 #endif /* HAS_GETNETENT_R */
889 #ifdef HAS_GETPROTOBYNAME_R
890 # undef getprotobyname
891 # if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWR
892 # define getprotobyname(a) (((errno = getprotobyname_r(a, &PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size, &PL_reentrant_buffer->_getprotoent_ptr))) == 0 ? PL_reentrant_buffer->_getprotoent_ptr : 0)
894 # if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI
895 # define getprotobyname(a) (getprotobyname_r(a, &PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size) ? &PL_reentrant_buffer->_getprotoent_struct : 0)
897 # if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
898 # define getprotobyname(a) (((errno = getprotobyname_r(a, &PL_reentrant_buffer->_getprotoent_struct, &PL_reentrant_buffer->_getprotoent_data))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : 0)
900 #endif /* HAS_GETPROTOBYNAME_R */
902 #ifdef HAS_GETPROTOBYNUMBER_R
903 # undef getprotobynumber
904 # if !defined(getprotobynumber) && GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISBWR
905 # define getprotobynumber(a) (((errno = getprotobynumber_r(a, &PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size, &PL_reentrant_buffer->_getprotoent_ptr))) == 0 ? PL_reentrant_buffer->_getprotoent_ptr : 0)
907 # if !defined(getprotobynumber) && GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_S_ISBI
908 # define getprotobynumber(a) (getprotobynumber_r(a, &PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size) ? &PL_reentrant_buffer->_getprotoent_struct : 0)
910 # if !defined(getprotobynumber) && GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISD
911 # define getprotobynumber(a) (((errno = getprotobynumber_r(a, &PL_reentrant_buffer->_getprotoent_struct, &PL_reentrant_buffer->_getprotoent_data))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : 0)
913 #endif /* HAS_GETPROTOBYNUMBER_R */
915 #ifdef HAS_GETPROTOENT_R
917 # if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBWR
918 # define getprotoent() (((errno = getprotoent_r(&PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size, &PL_reentrant_buffer->_getprotoent_ptr))) == 0 ? PL_reentrant_buffer->_getprotoent_ptr : 0)
920 # if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBI
921 # define getprotoent() (((errno = getprotoent_r(&PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : 0)
923 # if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_S_SBI
924 # define getprotoent() (getprotoent_r(&PL_reentrant_buffer->_getprotoent_struct, PL_reentrant_buffer->_getprotoent_buffer, PL_reentrant_buffer->_getprotoent_size) ? &PL_reentrant_buffer->_getprotoent_struct : 0)
926 # if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SD
927 # define getprotoent() (((errno = getprotoent_r(&PL_reentrant_buffer->_getprotoent_struct, &PL_reentrant_buffer->_getprotoent_data))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : 0)
929 #endif /* HAS_GETPROTOENT_R */
931 #ifdef HAS_GETPWENT_R
933 # if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBWR
934 # define getpwent() (((errno = getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : 0)
936 # if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIR
937 # define getpwent() (((errno = getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : 0)
939 # if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBW
940 # define getpwent() (getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size) ? &PL_reentrant_buffer->_getpwent_struct : 0)
942 # if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBI
943 # define getpwent() (getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size) ? &PL_reentrant_buffer->_getpwent_struct : 0)
945 # if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBI
946 # define getpwent() (((errno = getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size))) == 0 ? &PL_reentrant_buffer->_getpwent_struct : 0)
948 # if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIH
949 # define getpwent() (((errno = getpwent_r(&PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_fptr))) == 0 ? &PL_reentrant_buffer->_getpwent_struct : 0)
951 #endif /* HAS_GETPWENT_R */
953 #ifdef HAS_GETPWNAM_R
955 # if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR
956 # define getpwnam(a) (((errno = getpwnam_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : 0)
958 # if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR
959 # define getpwnam(a) (((errno = getpwnam_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : 0)
961 # if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_S_CSBI
962 # define getpwnam(a) (getpwnam_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size) ? &PL_reentrant_buffer->_getpwent_struct : 0)
964 # if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBI
965 # define getpwnam(a) (((errno = getpwnam_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size))) == 0 ? &PL_reentrant_buffer->_getpwent_struct : 0)
967 #endif /* HAS_GETPWNAM_R */
969 #ifdef HAS_GETPWUID_R
971 # if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBWR
972 # define getpwuid(a) (((errno = getpwuid_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : 0)
974 # if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBIR
975 # define getpwuid(a) (((errno = getpwuid_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size, &PL_reentrant_buffer->_getpwent_ptr))) == 0 ? PL_reentrant_buffer->_getpwent_ptr : 0)
977 # if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBI
978 # define getpwuid(a) (((errno = getpwuid_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size))) == 0 ? &PL_reentrant_buffer->_getpwent_struct : 0)
980 # if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_S_TSBI
981 # define getpwuid(a) (getpwuid_r(a, &PL_reentrant_buffer->_getpwent_struct, PL_reentrant_buffer->_getpwent_buffer, PL_reentrant_buffer->_getpwent_size) ? &PL_reentrant_buffer->_getpwent_struct : 0)
983 #endif /* HAS_GETPWUID_R */
985 #ifdef HAS_GETSERVBYNAME_R
986 # undef getservbyname
987 # if !defined(getservbyname) && GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSBWR
988 # define getservbyname(a, b) (((errno = getservbyname_r(a, b, &PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size, &PL_reentrant_buffer->_getservent_ptr))) == 0 ? PL_reentrant_buffer->_getservent_ptr : 0)
990 # if !defined(getservbyname) && GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_S_CCSBI
991 # define getservbyname(a, b) (getservbyname_r(a, b, &PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size) ? &PL_reentrant_buffer->_getservent_struct : 0)
993 # if !defined(getservbyname) && GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSD
994 # define getservbyname(a, b) (((errno = getservbyname_r(a, b, &PL_reentrant_buffer->_getservent_struct, &PL_reentrant_buffer->_getservent_data))) == 0 ? &PL_reentrant_buffer->_getservent_struct : 0)
996 #endif /* HAS_GETSERVBYNAME_R */
998 #ifdef HAS_GETSERVBYPORT_R
999 # undef getservbyport
1000 # if !defined(getservbyport) && GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSBWR
1001 # define getservbyport(a, b) (((errno = getservbyport_r(a, b, &PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size, &PL_reentrant_buffer->_getservent_ptr))) == 0 ? PL_reentrant_buffer->_getservent_ptr : 0)
1003 # if !defined(getservbyport) && GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_S_ICSBI
1004 # define getservbyport(a, b) (getservbyport_r(a, b, &PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size) ? &PL_reentrant_buffer->_getservent_struct : 0)
1006 # if !defined(getservbyport) && GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSD
1007 # define getservbyport(a, b) (((errno = getservbyport_r(a, b, &PL_reentrant_buffer->_getservent_struct, &PL_reentrant_buffer->_getservent_data))) == 0 ? &PL_reentrant_buffer->_getservent_struct : 0)
1009 #endif /* HAS_GETSERVBYPORT_R */
1011 #ifdef HAS_GETSERVENT_R
1013 # if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBWR
1014 # define getservent() (((errno = getservent_r(&PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size, &PL_reentrant_buffer->_getservent_ptr))) == 0 ? PL_reentrant_buffer->_getservent_ptr : 0)
1016 # if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBI
1017 # define getservent() (((errno = getservent_r(&PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size))) == 0 ? &PL_reentrant_buffer->_getservent_struct : 0)
1019 # if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_S_SBI
1020 # define getservent() (getservent_r(&PL_reentrant_buffer->_getservent_struct, PL_reentrant_buffer->_getservent_buffer, PL_reentrant_buffer->_getservent_size) ? &PL_reentrant_buffer->_getservent_struct : 0)
1022 # if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SD
1023 # define getservent() (((errno = getservent_r(&PL_reentrant_buffer->_getservent_struct, &PL_reentrant_buffer->_getservent_data))) == 0 ? &PL_reentrant_buffer->_getservent_struct : 0)
1025 #endif /* HAS_GETSERVENT_R */
1027 #ifdef HAS_GETSPNAM_R
1029 # if !defined(getspnam) && GETSPNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR
1030 # define getspnam(a) (((errno = getspnam_r(a, &PL_reentrant_buffer->_getspent_struct, PL_reentrant_buffer->_getspent_buffer, PL_reentrant_buffer->_getspent_size, &PL_reentrant_buffer->_getspent_ptr))) == 0 ? PL_reentrant_buffer->_getspent_ptr : 0)
1032 # if !defined(getspnam) && GETSPNAM_R_PROTO == REENTRANT_PROTO_S_CSBI
1033 # define getspnam(a) (getspnam_r(a, &PL_reentrant_buffer->_getspent_struct, PL_reentrant_buffer->_getspent_buffer, PL_reentrant_buffer->_getspent_size) ? &PL_reentrant_buffer->_getspent_struct : 0)
1035 #endif /* HAS_GETSPNAM_R */
1039 # if !defined(gmtime) && GMTIME_R_PROTO == REENTRANT_PROTO_S_TS
1040 # define gmtime(a) (gmtime_r(a, &PL_reentrant_buffer->_gmtime_struct) ? &PL_reentrant_buffer->_gmtime_struct : 0)
1042 # if !defined(gmtime) && GMTIME_R_PROTO == REENTRANT_PROTO_I_TS
1043 # define gmtime(a) (((errno = gmtime_r(a, &PL_reentrant_buffer->_gmtime_struct))) == 0 ? &PL_reentrant_buffer->_gmtime_struct : 0)
1045 #endif /* HAS_GMTIME_R */
1047 #ifdef HAS_LOCALTIME_R
1049 # if !defined(localtime) && LOCALTIME_R_PROTO == REENTRANT_PROTO_S_TS
1050 # define localtime(a) (localtime_r(a, &PL_reentrant_buffer->_localtime_struct) ? &PL_reentrant_buffer->_localtime_struct : 0)
1052 # if !defined(localtime) && LOCALTIME_R_PROTO == REENTRANT_PROTO_I_TS
1053 # define localtime(a) (((errno = localtime_r(a, &PL_reentrant_buffer->_localtime_struct))) == 0 ? &PL_reentrant_buffer->_localtime_struct : 0)
1055 #endif /* HAS_LOCALTIME_R */
1059 # if !defined(random) && RANDOM_R_PROTO == REENTRANT_PROTO_I_TS
1060 # define random() (((errno = random_r(T, &PL_reentrant_buffer->_random_struct))) == 0 ? &PL_reentrant_buffer->_random_struct : 0)
1062 #endif /* HAS_RANDOM_R */
1064 #ifdef HAS_READDIR_R
1066 # if !defined(readdir) && READDIR_R_PROTO == REENTRANT_PROTO_I_TSR
1067 # define readdir(a) (((errno = readdir_r(a, PL_reentrant_buffer->_readdir_struct, &PL_reentrant_buffer->_readdir_ptr))) == 0 ? PL_reentrant_buffer->_readdir_ptr : 0)
1069 # if !defined(readdir) && READDIR_R_PROTO == REENTRANT_PROTO_I_TS
1070 # define readdir(a) (((errno = readdir_r(a, PL_reentrant_buffer->_readdir_struct))) == 0 ? PL_reentrant_buffer->_readdir_struct : 0)
1072 #endif /* HAS_READDIR_R */
1074 #ifdef HAS_READDIR64_R
1076 # if !defined(readdir64) && READDIR64_R_PROTO == REENTRANT_PROTO_I_TSR
1077 # define readdir64(a) (((errno = readdir64_r(a, PL_reentrant_buffer->_readdir64_struct, &PL_reentrant_buffer->_readdir64_ptr))) == 0 ? PL_reentrant_buffer->_readdir64_ptr : 0)
1079 # if !defined(readdir64) && READDIR64_R_PROTO == REENTRANT_PROTO_I_TS
1080 # define readdir64(a) (((errno = readdir64_r(a, PL_reentrant_buffer->_readdir64_struct))) == 0 ? PL_reentrant_buffer->_readdir64_struct : 0)
1082 #endif /* HAS_READDIR64_R */
1084 #ifdef HAS_SETGRENT_R
1086 # if !defined(setgrent) && SETGRENT_R_PROTO == REENTRANT_PROTO_I_H
1087 # define setgrent() (((errno = setgrent_r(&PL_reentrant_buffer->_getgrent_fptr))) == 0 ? 1 : 0)
1089 # if !defined(setgrent) && SETGRENT_R_PROTO == REENTRANT_PROTO_V_H
1090 # define setgrent() setgrent_r(&PL_reentrant_buffer->_getgrent_fptr)
1092 #endif /* HAS_SETGRENT_R */
1094 #ifdef HAS_SETHOSTENT_R
1096 # if !defined(sethostent) && SETHOSTENT_R_PROTO == REENTRANT_PROTO_I_ID
1097 # define sethostent(a) (((errno = sethostent_r(a, &PL_reentrant_buffer->_gethostent_data))) == 0 ? 1 : 0)
1099 # if !defined(sethostent) && SETHOSTENT_R_PROTO == REENTRANT_PROTO_V_ID
1100 # define sethostent(a) sethostent_r(a, &PL_reentrant_buffer->_gethostent_data)
1102 #endif /* HAS_SETHOSTENT_R */
1104 #ifdef HAS_SETLOCALE_R
1106 # if !defined(setlocale) && SETLOCALE_R_PROTO == REENTRANT_PROTO_I_ICBI
1107 # define setlocale(a, b) (((errno = setlocale_r(a, b, PL_reentrant_buffer->_setlocale_buffer, PL_reentrant_buffer->_setlocale_size))) == 0 ? PL_reentrant_buffer->_setlocale_buffer : 0)
1109 #endif /* HAS_SETLOCALE_R */
1111 #ifdef HAS_SETNETENT_R
1113 # if !defined(setnetent) && SETNETENT_R_PROTO == REENTRANT_PROTO_I_ID
1114 # define setnetent(a) (((errno = setnetent_r(a, &PL_reentrant_buffer->_getnetent_data))) == 0 ? 1 : 0)
1116 # if !defined(setnetent) && SETNETENT_R_PROTO == REENTRANT_PROTO_V_ID
1117 # define setnetent(a) setnetent_r(a, &PL_reentrant_buffer->_getnetent_data)
1119 #endif /* HAS_SETNETENT_R */
1121 #ifdef HAS_SETPROTOENT_R
1123 # if !defined(setprotoent) && SETPROTOENT_R_PROTO == REENTRANT_PROTO_I_ID
1124 # define setprotoent(a) (((errno = setprotoent_r(a, &PL_reentrant_buffer->_getprotoent_data))) == 0 ? 1 : 0)
1126 # if !defined(setprotoent) && SETPROTOENT_R_PROTO == REENTRANT_PROTO_V_ID
1127 # define setprotoent(a) setprotoent_r(a, &PL_reentrant_buffer->_getprotoent_data)
1129 #endif /* HAS_SETPROTOENT_R */
1131 #ifdef HAS_SETPWENT_R
1133 # if !defined(setpwent) && SETPWENT_R_PROTO == REENTRANT_PROTO_I_H
1134 # define setpwent() (((errno = setpwent_r(&PL_reentrant_buffer->_getpwent_fptr))) == 0 ? 1 : 0)
1136 # if !defined(setpwent) && SETPWENT_R_PROTO == REENTRANT_PROTO_V_H
1137 # define setpwent() setpwent_r(&PL_reentrant_buffer->_getpwent_fptr)
1139 #endif /* HAS_SETPWENT_R */
1141 #ifdef HAS_SETSERVENT_R
1143 # if !defined(setservent) && SETSERVENT_R_PROTO == REENTRANT_PROTO_I_ID
1144 # define setservent(a) (((errno = setservent_r(a, &PL_reentrant_buffer->_getservent_data))) == 0 ? 1 : 0)
1146 # if !defined(setservent) && SETSERVENT_R_PROTO == REENTRANT_PROTO_V_ID
1147 # define setservent(a) setservent_r(a, &PL_reentrant_buffer->_getservent_data)
1149 #endif /* HAS_SETSERVENT_R */
1151 #ifdef HAS_SRAND48_R
1153 # if !defined(srand48) && SRAND48_R_PROTO == REENTRANT_PROTO_I_LS
1154 # define srand48(a) (((errno = srand48_r(a, &PL_reentrant_buffer->_drand48_struct))) == 0 ? &PL_reentrant_buffer->_drand48_struct : 0)
1156 #endif /* HAS_SRAND48_R */
1158 #ifdef HAS_SRANDOM_R
1160 # if !defined(srandom) && SRANDOM_R_PROTO == REENTRANT_PROTO_I_TS
1161 # define srandom(a) (((errno = srandom_r(a, &PL_reentrant_buffer->_srandom_struct))) == 0 ? &PL_reentrant_buffer->_srandom_struct : 0)
1163 #endif /* HAS_SRANDOM_R */
1165 #ifdef HAS_STRERROR_R
1167 # if !defined(strerror) && STRERROR_R_PROTO == REENTRANT_PROTO_I_IBW
1168 # define strerror(a) (((errno = strerror_r(a, PL_reentrant_buffer->_strerror_buffer, PL_reentrant_buffer->_strerror_size))) == 0 ? PL_reentrant_buffer->_strerror_buffer : 0)
1170 # if !defined(strerror) && STRERROR_R_PROTO == REENTRANT_PROTO_I_IBI
1171 # define strerror(a) (((errno = strerror_r(a, PL_reentrant_buffer->_strerror_buffer, PL_reentrant_buffer->_strerror_size))) == 0 ? PL_reentrant_buffer->_strerror_buffer : 0)
1173 # if !defined(strerror) && STRERROR_R_PROTO == REENTRANT_PROTO_B_IBW
1174 # define strerror(a) strerror_r(a, PL_reentrant_buffer->_strerror_buffer, PL_reentrant_buffer->_strerror_size)
1176 #endif /* HAS_STRERROR_R */
1180 # if !defined(tmpnam) && TMPNAM_R_PROTO == REENTRANT_PROTO_B_B
1181 # define tmpnam(a) tmpnam_r(a)
1183 #endif /* HAS_TMPNAM_R */
1185 #ifdef HAS_TTYNAME_R
1187 # if !defined(ttyname) && TTYNAME_R_PROTO == REENTRANT_PROTO_I_IBW
1188 # define ttyname(a) (((errno = ttyname_r(a, PL_reentrant_buffer->_ttyname_buffer, PL_reentrant_buffer->_ttyname_size))) == 0 ? PL_reentrant_buffer->_ttyname_buffer : 0)
1190 # if !defined(ttyname) && TTYNAME_R_PROTO == REENTRANT_PROTO_I_IBI
1191 # define ttyname(a) (((errno = ttyname_r(a, PL_reentrant_buffer->_ttyname_buffer, PL_reentrant_buffer->_ttyname_size))) == 0 ? PL_reentrant_buffer->_ttyname_buffer : 0)
1193 # if !defined(ttyname) && TTYNAME_R_PROTO == REENTRANT_PROTO_B_IBI
1194 # define ttyname(a) ttyname_r(a, PL_reentrant_buffer->_ttyname_buffer, PL_reentrant_buffer->_ttyname_size)
1196 #endif /* HAS_TTYNAME_R */
1199 #endif /* USE_REENTRANT_API */