home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / perl / 5.10.0 / CORE / reentr.h < prev    next >
Encoding:
C/C++ Source or Header  |  2009-06-26  |  90.2 KB  |  1,541 lines

  1. /* -*- buffer-read-only: t -*-
  2.  *
  3.  *    reentr.h
  4.  *
  5.  *    Copyright (C) 2002, 2003, 2005, 2006, 2007 by Larry Wall and others
  6.  *
  7.  *    You may distribute under the terms of either the GNU General Public
  8.  *    License or the Artistic License, as specified in the README file.
  9.  *
  10.  *  !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
  11.  *  This file is built by reentr.pl from data in reentr.pl.
  12.  */
  13.  
  14. #ifndef REENTR_H
  15. #define REENTR_H
  16.  
  17. /* If compiling for a threaded perl, we will macro-wrap the system/library
  18.  * interfaces (e.g. getpwent()) which have threaded versions
  19.  * (e.g. getpwent_r()), which will handle things correctly for
  20.  * the Perl interpreter, but otherwise (for XS) the wrapping does
  21.  * not take place.  See L<perlxs/Thread-aware system interfaces>.
  22.  */
  23.  
  24. #ifndef PERL_REENTR_API
  25. # if defined(PERL_CORE) || defined(PERL_EXT)
  26. #  define PERL_REENTR_API 1
  27. # else
  28. #  define PERL_REENTR_API 0
  29. # endif
  30. #endif
  31.  
  32. #ifdef USE_REENTRANT_API
  33.  
  34. /* Deprecations: some platforms have the said reentrant interfaces
  35.  * but they are declared obsolete and are not to be used.  Often this
  36.  * means that the platform has threadsafed the interfaces (hopefully).
  37.  * All this is OS version dependent, so we are of course fooling ourselves.
  38.  * If you know of more deprecations on some platforms, please add your own
  39.  * (by editing reentr.pl, mind!) */
  40.  
  41. #ifdef __hpux
  42. #   undef HAS_CRYPT_R
  43. #   undef HAS_DRAND48_R
  44. #   undef HAS_ENDGRENT_R
  45. #   undef HAS_ENDPWENT_R
  46. #   undef HAS_GETGRENT_R
  47. #   undef HAS_GETPWENT_R
  48. #   undef HAS_SETLOCALE_R
  49. #   undef HAS_SRAND48_R
  50. #   undef HAS_STRERROR_R
  51. #   define NETDB_R_OBSOLETE
  52. #endif
  53.  
  54. #if defined(__osf__) && defined(__alpha) /* Tru64 aka Digital UNIX */
  55. #   undef HAS_CRYPT_R
  56. #   undef HAS_STRERROR_R
  57. #   define NETDB_R_OBSOLETE
  58. #endif
  59.  
  60. /*
  61.  * As of OpenBSD 3.7, reentrant functions are now working, they just are
  62.  * incompatible with everyone else.  To make OpenBSD happy, we have to
  63.  * memzero out certain structures before calling the functions.
  64.  */
  65. #if defined(__OpenBSD__)
  66. #    define REENTR_MEMZERO(a,b) memzero(a,b)
  67. #else
  68. #    define REENTR_MEMZERO(a,b) 0
  69. #endif 
  70.  
  71. #ifdef NETDB_R_OBSOLETE
  72. #   undef HAS_ENDHOSTENT_R
  73. #   undef HAS_ENDNETENT_R
  74. #   undef HAS_ENDPROTOENT_R
  75. #   undef HAS_ENDSERVENT_R
  76. #   undef HAS_GETHOSTBYADDR_R
  77. #   undef HAS_GETHOSTBYNAME_R
  78. #   undef HAS_GETHOSTENT_R
  79. #   undef HAS_GETNETBYADDR_R
  80. #   undef HAS_GETNETBYNAME_R
  81. #   undef HAS_GETNETENT_R
  82. #   undef HAS_GETPROTOBYNAME_R
  83. #   undef HAS_GETPROTOBYNUMBER_R
  84. #   undef HAS_GETPROTOENT_R
  85. #   undef HAS_GETSERVBYNAME_R
  86. #   undef HAS_GETSERVBYPORT_R
  87. #   undef HAS_GETSERVENT_R
  88. #   undef HAS_SETHOSTENT_R
  89. #   undef HAS_SETNETENT_R
  90. #   undef HAS_SETPROTOENT_R
  91. #   undef HAS_SETSERVENT_R
  92. #endif
  93.  
  94. #ifdef I_PWD
  95. #   include <pwd.h>
  96. #endif
  97. #ifdef I_GRP
  98. #   include <grp.h>
  99. #endif
  100. #ifdef I_NETDB
  101. #   include <netdb.h>
  102. #endif
  103. #ifdef I_STDLIB
  104. #   include <stdlib.h>    /* drand48_data */
  105. #endif
  106. #ifdef I_CRYPT
  107. #   ifdef I_CRYPT
  108. #       include <crypt.h>
  109. #   endif
  110. #endif
  111. #ifdef HAS_GETSPNAM_R
  112. #   ifdef I_SHADOW
  113. #       include <shadow.h>
  114. #   endif
  115. #endif
  116.  
  117. #define REENTRANT_PROTO_B_B    1
  118. #define REENTRANT_PROTO_B_BI    2
  119. #define REENTRANT_PROTO_B_BW    3
  120. #define REENTRANT_PROTO_B_CCD    4
  121. #define REENTRANT_PROTO_B_CCS    5
  122. #define REENTRANT_PROTO_B_IBI    6
  123. #define REENTRANT_PROTO_B_IBW    7
  124. #define REENTRANT_PROTO_B_SB    8
  125. #define REENTRANT_PROTO_B_SBI    9
  126. #define REENTRANT_PROTO_I_BI    10
  127. #define REENTRANT_PROTO_I_BW    11
  128. #define REENTRANT_PROTO_I_CCSBWR    12
  129. #define REENTRANT_PROTO_I_CCSD    13
  130. #define REENTRANT_PROTO_I_CII    14
  131. #define REENTRANT_PROTO_I_CIISD    15
  132. #define REENTRANT_PROTO_I_CSBI    16
  133. #define REENTRANT_PROTO_I_CSBIR    17
  134. #define REENTRANT_PROTO_I_CSBWR    18
  135. #define REENTRANT_PROTO_I_CSBWRE    19
  136. #define REENTRANT_PROTO_I_CSD    20
  137. #define REENTRANT_PROTO_I_CWISBWRE    21
  138. #define REENTRANT_PROTO_I_CWISD    22
  139. #define REENTRANT_PROTO_I_D    23
  140. #define REENTRANT_PROTO_I_H    24
  141. #define REENTRANT_PROTO_I_IBI    25
  142. #define REENTRANT_PROTO_I_IBW    26
  143. #define REENTRANT_PROTO_I_ICBI    27
  144. #define REENTRANT_PROTO_I_ICSBWR    28
  145. #define REENTRANT_PROTO_I_ICSD    29
  146. #define REENTRANT_PROTO_I_ID    30
  147. #define REENTRANT_PROTO_I_IISD    31
  148. #define REENTRANT_PROTO_I_ISBWR    32
  149. #define REENTRANT_PROTO_I_ISD    33
  150. #define REENTRANT_PROTO_I_LISBI    34
  151. #define REENTRANT_PROTO_I_LISD    35
  152. #define REENTRANT_PROTO_I_LS    36
  153. #define REENTRANT_PROTO_I_SB    37
  154. #define REENTRANT_PROTO_I_SBI    38
  155. #define REENTRANT_PROTO_I_SBIE    39
  156. #define REENTRANT_PROTO_I_SBIH    40
  157. #define REENTRANT_PROTO_I_SBIR    41
  158. #define REENTRANT_PROTO_I_SBWR    42
  159. #define REENTRANT_PROTO_I_SBWRE    43
  160. #define REENTRANT_PROTO_I_SD    44
  161. #define REENTRANT_PROTO_I_ST    45
  162. #define REENTRANT_PROTO_I_St    46
  163. #define REENTRANT_PROTO_I_TISD    47
  164. #define REENTRANT_PROTO_I_TS    48
  165. #define REENTRANT_PROTO_I_TSBI    49
  166. #define REENTRANT_PROTO_I_TSBIR    50
  167. #define REENTRANT_PROTO_I_TSBWR    51
  168. #define REENTRANT_PROTO_I_TSR    52
  169. #define REENTRANT_PROTO_I_TsISBWRE    53
  170. #define REENTRANT_PROTO_I_UISBWRE    54
  171. #define REENTRANT_PROTO_I_iS    55
  172. #define REENTRANT_PROTO_I_lS    56
  173. #define REENTRANT_PROTO_I_uISBWRE    57
  174. #define REENTRANT_PROTO_S_CBI    58
  175. #define REENTRANT_PROTO_S_CCSBI    59
  176. #define REENTRANT_PROTO_S_CIISBIE    60
  177. #define REENTRANT_PROTO_S_CSBI    61
  178. #define REENTRANT_PROTO_S_CSBIE    62
  179. #define REENTRANT_PROTO_S_CWISBIE    63
  180. #define REENTRANT_PROTO_S_CWISBWIE    64
  181. #define REENTRANT_PROTO_S_ICSBI    65
  182. #define REENTRANT_PROTO_S_ISBI    66
  183. #define REENTRANT_PROTO_S_LISBI    67
  184. #define REENTRANT_PROTO_S_SBI    68
  185. #define REENTRANT_PROTO_S_SBIE    69
  186. #define REENTRANT_PROTO_S_SBW    70
  187. #define REENTRANT_PROTO_S_TISBI    71
  188. #define REENTRANT_PROTO_S_TS    72
  189. #define REENTRANT_PROTO_S_TSBI    73
  190. #define REENTRANT_PROTO_S_TSBIE    74
  191. #define REENTRANT_PROTO_S_TWISBIE    75
  192. #define REENTRANT_PROTO_V_D    76
  193. #define REENTRANT_PROTO_V_H    77
  194. #define REENTRANT_PROTO_V_ID    78
  195.  
  196. /* Defines for indicating which special features are supported. */
  197.  
  198. /* The getgrent getgrgid getgrnam using buffer? */
  199.  
  200. #if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR || GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBW || GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBI || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBI || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
  201. #   define GETGRENT_R_HAS_BUFFER
  202. #else
  203. #   undef  GETGRENT_R_HAS_BUFFER
  204. #endif
  205. #if defined(HAS_GETGRGID_R) && (GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBI || GETGRGID_R_PROTO == REENTRANT_PROTO_S_TSBI)
  206. #   define GETGRGID_R_HAS_BUFFER
  207. #else
  208. #   undef  GETGRGID_R_HAS_BUFFER
  209. #endif
  210. #if defined(HAS_GETGRNAM_R) && (GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR || GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CBI || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBI || GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CSBI)
  211. #   define GETGRNAM_R_HAS_BUFFER
  212. #else
  213. #   undef  GETGRNAM_R_HAS_BUFFER
  214. #endif
  215.  
  216. /* Any of the getgrent getgrgid getgrnam using buffer? */
  217.  
  218. #if (defined(GETGRENT_R_HAS_BUFFER) || defined(GETGRGID_R_HAS_BUFFER) || defined(GETGRNAM_R_HAS_BUFFER))
  219. #   define USE_GRENT_BUFFER
  220. #else
  221. #   undef  USE_GRENT_BUFFER
  222. #endif
  223.  
  224. /* The getgrent getgrgid getgrnam using ptr? */
  225.  
  226. #if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR)
  227. #   define GETGRENT_R_HAS_PTR
  228. #else
  229. #   undef  GETGRENT_R_HAS_PTR
  230. #endif
  231. #if defined(HAS_GETGRGID_R) && (GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR)
  232. #   define GETGRGID_R_HAS_PTR
  233. #else
  234. #   undef  GETGRGID_R_HAS_PTR
  235. #endif
  236. #if defined(HAS_GETGRNAM_R) && (GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR)
  237. #   define GETGRNAM_R_HAS_PTR
  238. #else
  239. #   undef  GETGRNAM_R_HAS_PTR
  240. #endif
  241.  
  242. /* Any of the getgrent getgrgid getgrnam using ptr? */
  243.  
  244. #if (defined(GETGRENT_R_HAS_PTR) || defined(GETGRGID_R_HAS_PTR) || defined(GETGRNAM_R_HAS_PTR))
  245. #   define USE_GRENT_PTR
  246. #else
  247. #   undef  USE_GRENT_PTR
  248. #endif
  249.  
  250. /* The getpwent getpwnam getpwuid using ptr? */
  251.  
  252. #if defined(HAS_GETPWENT_R) && (GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIR)
  253. #   define GETPWENT_R_HAS_PTR
  254. #else
  255. #   undef  GETPWENT_R_HAS_PTR
  256. #endif
  257. #if defined(HAS_GETPWNAM_R) && (GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR)
  258. #   define GETPWNAM_R_HAS_PTR
  259. #else
  260. #   undef  GETPWNAM_R_HAS_PTR
  261. #endif
  262. #if defined(HAS_GETPWUID_R) && (GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBWR || GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBIR)
  263. #   define GETPWUID_R_HAS_PTR
  264. #else
  265. #   undef  GETPWUID_R_HAS_PTR
  266. #endif
  267.  
  268. /* Any of the getpwent getpwnam getpwuid using ptr? */
  269.  
  270. #if (defined(GETPWENT_R_HAS_PTR) || defined(GETPWNAM_R_HAS_PTR) || defined(GETPWUID_R_HAS_PTR))
  271. #   define USE_PWENT_PTR
  272. #else
  273. #   undef  USE_PWENT_PTR
  274. #endif
  275.  
  276. /* The getspent getspnam using ptr? */
  277.  
  278. #if defined(HAS_GETSPNAM_R) && (GETSPNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR)
  279. #   define GETSPNAM_R_HAS_PTR
  280. #else
  281. #   undef  GETSPNAM_R_HAS_PTR
  282. #endif
  283.  
  284. /* Any of the getspent getspnam using ptr? */
  285.  
  286. #if (defined(GETSPENT_R_HAS_PTR) || defined(GETSPNAM_R_HAS_PTR))
  287. #   define USE_SPENT_PTR
  288. #else
  289. #   undef  USE_SPENT_PTR
  290. #endif
  291.  
  292. /* The getgrent getgrgid getgrnam setgrent endgrent using fptr? */
  293.  
  294. #if defined(HAS_GETGRENT_R) && (GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
  295. #   define GETGRENT_R_HAS_FPTR
  296. #else
  297. #   undef  GETGRENT_R_HAS_FPTR
  298. #endif
  299. #if defined(HAS_SETGRENT_R) && (SETGRENT_R_PROTO == REENTRANT_PROTO_I_H || SETGRENT_R_PROTO == REENTRANT_PROTO_V_H)
  300. #   define SETGRENT_R_HAS_FPTR
  301. #else
  302. #   undef  SETGRENT_R_HAS_FPTR
  303. #endif
  304. #if defined(HAS_ENDGRENT_R) && (ENDGRENT_R_PROTO == REENTRANT_PROTO_I_H || ENDGRENT_R_PROTO == REENTRANT_PROTO_V_H)
  305. #   define ENDGRENT_R_HAS_FPTR
  306. #else
  307. #   undef  ENDGRENT_R_HAS_FPTR
  308. #endif
  309.  
  310. /* Any of the getgrent getgrgid getgrnam setgrent endgrent using fptr? */
  311.  
  312. #if (defined(GETGRENT_R_HAS_FPTR) || defined(GETGRGID_R_HAS_FPTR) || defined(GETGRNAM_R_HAS_FPTR) || defined(SETGRENT_R_HAS_FPTR) || defined(ENDGRENT_R_HAS_FPTR))
  313. #   define USE_GRENT_FPTR
  314. #else
  315. #   undef  USE_GRENT_FPTR
  316. #endif
  317.  
  318. /* The getpwent getpwnam getpwuid setpwent endpwent using fptr? */
  319.  
  320. #if defined(HAS_GETPWENT_R) && (GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
  321. #   define GETPWENT_R_HAS_FPTR
  322. #else
  323. #   undef  GETPWENT_R_HAS_FPTR
  324. #endif
  325. #if defined(HAS_SETPWENT_R) && (SETPWENT_R_PROTO == REENTRANT_PROTO_I_H || SETPWENT_R_PROTO == REENTRANT_PROTO_V_H)
  326. #   define SETPWENT_R_HAS_FPTR
  327. #else
  328. #   undef  SETPWENT_R_HAS_FPTR
  329. #endif
  330. #if defined(HAS_ENDPWENT_R) && (ENDPWENT_R_PROTO == REENTRANT_PROTO_I_H || ENDPWENT_R_PROTO == REENTRANT_PROTO_V_H)
  331. #   define ENDPWENT_R_HAS_FPTR
  332. #else
  333. #   undef  ENDPWENT_R_HAS_FPTR
  334. #endif
  335.  
  336. /* Any of the getpwent getpwnam getpwuid setpwent endpwent using fptr? */
  337.  
  338. #if (defined(GETPWENT_R_HAS_FPTR) || defined(GETPWNAM_R_HAS_FPTR) || defined(GETPWUID_R_HAS_FPTR) || defined(SETPWENT_R_HAS_FPTR) || defined(ENDPWENT_R_HAS_FPTR))
  339. #   define USE_PWENT_FPTR
  340. #else
  341. #   undef  USE_PWENT_FPTR
  342. #endif
  343.  
  344. /* The getpwent getpwgid getpwnam using buffer? */
  345.  
  346. #if defined(HAS_GETPWENT_R) && (GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIR || GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBW || GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBI || GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBI || GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIH)
  347. #   define GETPWENT_R_HAS_BUFFER
  348. #else
  349. #   undef  GETPWENT_R_HAS_BUFFER
  350. #endif
  351. #if defined(HAS_GETPWNAM_R) && (GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR || GETPWNAM_R_PROTO == REENTRANT_PROTO_S_CSBI || GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBI)
  352. #   define GETPWNAM_R_HAS_BUFFER
  353. #else
  354. #   undef  GETPWNAM_R_HAS_BUFFER
  355. #endif
  356.  
  357. /* Any of the getpwent getpwgid getpwnam using buffer? */
  358.  
  359. #if (defined(GETPWENT_R_HAS_BUFFER) || defined(GETPWGID_R_HAS_BUFFER) || defined(GETPWNAM_R_HAS_BUFFER))
  360. #   define USE_PWENT_BUFFER
  361. #else
  362. #   undef  USE_PWENT_BUFFER
  363. #endif
  364.  
  365. /* The gethostent gethostbyaddr gethostbyname using ptr? */
  366.  
  367. #if defined(HAS_GETHOSTENT_R) && (GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBWRE)
  368. #   define GETHOSTENT_R_HAS_PTR
  369. #else
  370. #   undef  GETHOSTENT_R_HAS_PTR
  371. #endif
  372. #if defined(HAS_GETHOSTBYADDR_R) && (GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISBWRE || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_TsISBWRE)
  373. #   define GETHOSTBYADDR_R_HAS_PTR
  374. #else
  375. #   undef  GETHOSTBYADDR_R_HAS_PTR
  376. #endif
  377. #if defined(HAS_GETHOSTBYNAME_R) && (GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE)
  378. #   define GETHOSTBYNAME_R_HAS_PTR
  379. #else
  380. #   undef  GETHOSTBYNAME_R_HAS_PTR
  381. #endif
  382.  
  383. /* Any of the gethostent gethostbyaddr gethostbyname using ptr? */
  384.  
  385. #if (defined(GETHOSTENT_R_HAS_PTR) || defined(GETHOSTBYADDR_R_HAS_PTR) || defined(GETHOSTBYNAME_R_HAS_PTR))
  386. #   define USE_HOSTENT_PTR
  387. #else
  388. #   undef  USE_HOSTENT_PTR
  389. #endif
  390.  
  391. /* The getnetent getnetbyaddr getnetbyname using ptr? */
  392.  
  393. #if defined(HAS_GETNETENT_R) && (GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBWRE)
  394. #   define GETNETENT_R_HAS_PTR
  395. #else
  396. #   undef  GETNETENT_R_HAS_PTR
  397. #endif
  398. #if defined(HAS_GETNETBYADDR_R) && (GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE || GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_uISBWRE)
  399. #   define GETNETBYADDR_R_HAS_PTR
  400. #else
  401. #   undef  GETNETBYADDR_R_HAS_PTR
  402. #endif
  403. #if defined(HAS_GETNETBYNAME_R) && (GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE)
  404. #   define GETNETBYNAME_R_HAS_PTR
  405. #else
  406. #   undef  GETNETBYNAME_R_HAS_PTR
  407. #endif
  408.  
  409. /* Any of the getnetent getnetbyaddr getnetbyname using ptr? */
  410.  
  411. #if (defined(GETNETENT_R_HAS_PTR) || defined(GETNETBYADDR_R_HAS_PTR) || defined(GETNETBYNAME_R_HAS_PTR))
  412. #   define USE_NETENT_PTR
  413. #else
  414. #   undef  USE_NETENT_PTR
  415. #endif
  416.  
  417. /* The getprotoent getprotobyname getprotobynumber using ptr? */
  418.  
  419. #if defined(HAS_GETPROTOENT_R) && (GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBWR)
  420. #   define GETPROTOENT_R_HAS_PTR
  421. #else
  422. #   undef  GETPROTOENT_R_HAS_PTR
  423. #endif
  424. #if defined(HAS_GETPROTOBYNAME_R) && (GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWR)
  425. #   define GETPROTOBYNAME_R_HAS_PTR
  426. #else
  427. #   undef  GETPROTOBYNAME_R_HAS_PTR
  428. #endif
  429. #if defined(HAS_GETPROTOBYNUMBER_R) && (GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISBWR)
  430. #   define GETPROTOBYNUMBER_R_HAS_PTR
  431. #else
  432. #   undef  GETPROTOBYNUMBER_R_HAS_PTR
  433. #endif
  434.  
  435. /* Any of the getprotoent getprotobyname getprotobynumber using ptr? */
  436.  
  437. #if (defined(GETPROTOENT_R_HAS_PTR) || defined(GETPROTOBYNAME_R_HAS_PTR) || defined(GETPROTOBYNUMBER_R_HAS_PTR))
  438. #   define USE_PROTOENT_PTR
  439. #else
  440. #   undef  USE_PROTOENT_PTR
  441. #endif
  442.  
  443. /* The getservent getservbyname getservbyport using ptr? */
  444.  
  445. #if defined(HAS_GETSERVENT_R) && (GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBWR)
  446. #   define GETSERVENT_R_HAS_PTR
  447. #else
  448. #   undef  GETSERVENT_R_HAS_PTR
  449. #endif
  450. #if defined(HAS_GETSERVBYNAME_R) && (GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSBWR)
  451. #   define GETSERVBYNAME_R_HAS_PTR
  452. #else
  453. #   undef  GETSERVBYNAME_R_HAS_PTR
  454. #endif
  455. #if defined(HAS_GETSERVBYPORT_R) && (GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSBWR)
  456. #   define GETSERVBYPORT_R_HAS_PTR
  457. #else
  458. #   undef  GETSERVBYPORT_R_HAS_PTR
  459. #endif
  460.  
  461. /* Any of the getservent getservbyname getservbyport using ptr? */
  462.  
  463. #if (defined(GETSERVENT_R_HAS_PTR) || defined(GETSERVBYNAME_R_HAS_PTR) || defined(GETSERVBYPORT_R_HAS_PTR))
  464. #   define USE_SERVENT_PTR
  465. #else
  466. #   undef  USE_SERVENT_PTR
  467. #endif
  468.  
  469. /* The gethostent gethostbyaddr gethostbyname using buffer? */
  470.  
  471. #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 || GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBI || GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBI)
  472. #   define GETHOSTENT_R_HAS_BUFFER
  473. #else
  474. #   undef  GETHOSTENT_R_HAS_BUFFER
  475. #endif
  476. #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 || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_TsISBWRE)
  477. #   define GETHOSTBYADDR_R_HAS_BUFFER
  478. #else
  479. #   undef  GETHOSTBYADDR_R_HAS_BUFFER
  480. #endif
  481. #if defined(HAS_GETHOSTBYNAME_R) && (GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE || GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBIE)
  482. #   define GETHOSTBYNAME_R_HAS_BUFFER
  483. #else
  484. #   undef  GETHOSTBYNAME_R_HAS_BUFFER
  485. #endif
  486.  
  487. /* Any of the gethostent gethostbyaddr gethostbyname using buffer? */
  488.  
  489. #if (defined(GETHOSTENT_R_HAS_BUFFER) || defined(GETHOSTBYADDR_R_HAS_BUFFER) || defined(GETHOSTBYNAME_R_HAS_BUFFER))
  490. #   define USE_HOSTENT_BUFFER
  491. #else
  492. #   undef  USE_HOSTENT_BUFFER
  493. #endif
  494.  
  495. /* The getnetent getnetbyaddr getnetbyname using buffer? */
  496.  
  497. #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 || GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBI || GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBI)
  498. #   define GETNETENT_R_HAS_BUFFER
  499. #else
  500. #   undef  GETNETENT_R_HAS_BUFFER
  501. #endif
  502. #if defined(HAS_GETNETBYADDR_R) && (GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE || GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_LISBI || GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_TISBI || GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_LISBI || GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_uISBWRE)
  503. #   define GETNETBYADDR_R_HAS_BUFFER
  504. #else
  505. #   undef  GETNETBYADDR_R_HAS_BUFFER
  506. #endif
  507. #if defined(HAS_GETNETBYNAME_R) && (GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE || GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBI || GETNETBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI)
  508. #   define GETNETBYNAME_R_HAS_BUFFER
  509. #else
  510. #   undef  GETNETBYNAME_R_HAS_BUFFER
  511. #endif
  512.  
  513. /* Any of the getnetent getnetbyaddr getnetbyname using buffer? */
  514.  
  515. #if (defined(GETNETENT_R_HAS_BUFFER) || defined(GETNETBYADDR_R_HAS_BUFFER) || defined(GETNETBYNAME_R_HAS_BUFFER))
  516. #   define USE_NETENT_BUFFER
  517. #else
  518. #   undef  USE_NETENT_BUFFER
  519. #endif
  520.  
  521. /* The getprotoent getprotobyname getprotobynumber using buffer? */
  522.  
  523. #if defined(HAS_GETPROTOENT_R) && (GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBI || GETPROTOENT_R_PROTO == REENTRANT_PROTO_S_SBI)
  524. #   define GETPROTOENT_R_HAS_BUFFER
  525. #else
  526. #   undef  GETPROTOENT_R_HAS_BUFFER
  527. #endif
  528. #if defined(HAS_GETPROTOBYNAME_R) && (GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWR || GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI)
  529. #   define GETPROTOBYNAME_R_HAS_BUFFER
  530. #else
  531. #   undef  GETPROTOBYNAME_R_HAS_BUFFER
  532. #endif
  533. #if defined(HAS_GETPROTOBYNUMBER_R) && (GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISBWR || GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_S_ISBI)
  534. #   define GETPROTOBYNUMBER_R_HAS_BUFFER
  535. #else
  536. #   undef  GETPROTOBYNUMBER_R_HAS_BUFFER
  537. #endif
  538.  
  539. /* Any of the getprotoent getprotobyname getprotobynumber using buffer? */
  540.  
  541. #if (defined(GETPROTOENT_R_HAS_BUFFER) || defined(GETPROTOBYNAME_R_HAS_BUFFER) || defined(GETPROTOBYNUMBER_R_HAS_BUFFER))
  542. #   define USE_PROTOENT_BUFFER
  543. #else
  544. #   undef  USE_PROTOENT_BUFFER
  545. #endif
  546.  
  547. /* The getservent getservbyname getservbyport using buffer? */
  548.  
  549. #if defined(HAS_GETSERVENT_R) && (GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBWR || GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBI || GETSERVENT_R_PROTO == REENTRANT_PROTO_S_SBI)
  550. #   define GETSERVENT_R_HAS_BUFFER
  551. #else
  552. #   undef  GETSERVENT_R_HAS_BUFFER
  553. #endif
  554. #if defined(HAS_GETSERVBYNAME_R) && (GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSBWR || GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_S_CCSBI)
  555. #   define GETSERVBYNAME_R_HAS_BUFFER
  556. #else
  557. #   undef  GETSERVBYNAME_R_HAS_BUFFER
  558. #endif
  559. #if defined(HAS_GETSERVBYPORT_R) && (GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSBWR || GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_S_ICSBI)
  560. #   define GETSERVBYPORT_R_HAS_BUFFER
  561. #else
  562. #   undef  GETSERVBYPORT_R_HAS_BUFFER
  563. #endif
  564.  
  565. /* Any of the getservent getservbyname getservbyport using buffer? */
  566.  
  567. #if (defined(GETSERVENT_R_HAS_BUFFER) || defined(GETSERVBYNAME_R_HAS_BUFFER) || defined(GETSERVBYPORT_R_HAS_BUFFER))
  568. #   define USE_SERVENT_BUFFER
  569. #else
  570. #   undef  USE_SERVENT_BUFFER
  571. #endif
  572.  
  573. /* The gethostent gethostbyaddr gethostbyname using errno? */
  574.  
  575. #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)
  576. #   define GETHOSTENT_R_HAS_ERRNO
  577. #else
  578. #   undef  GETHOSTENT_R_HAS_ERRNO
  579. #endif
  580. #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 || GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_TsISBWRE)
  581. #   define GETHOSTBYADDR_R_HAS_ERRNO
  582. #else
  583. #   undef  GETHOSTBYADDR_R_HAS_ERRNO
  584. #endif
  585. #if defined(HAS_GETHOSTBYNAME_R) && (GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE || GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBIE)
  586. #   define GETHOSTBYNAME_R_HAS_ERRNO
  587. #else
  588. #   undef  GETHOSTBYNAME_R_HAS_ERRNO
  589. #endif
  590.  
  591. /* Any of the gethostent gethostbyaddr gethostbyname using errno? */
  592.  
  593. #if (defined(GETHOSTENT_R_HAS_ERRNO) || defined(GETHOSTBYADDR_R_HAS_ERRNO) || defined(GETHOSTBYNAME_R_HAS_ERRNO))
  594. #   define USE_HOSTENT_ERRNO
  595. #else
  596. #   undef  USE_HOSTENT_ERRNO
  597. #endif
  598.  
  599. /* The getnetent getnetbyaddr getnetbyname using errno? */
  600.  
  601. #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)
  602. #   define GETNETENT_R_HAS_ERRNO
  603. #else
  604. #   undef  GETNETENT_R_HAS_ERRNO
  605. #endif
  606. #if defined(HAS_GETNETBYADDR_R) && (GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE || GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_uISBWRE)
  607. #   define GETNETBYADDR_R_HAS_ERRNO
  608. #else
  609. #   undef  GETNETBYADDR_R_HAS_ERRNO
  610. #endif
  611. #if defined(HAS_GETNETBYNAME_R) && (GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE)
  612. #   define GETNETBYNAME_R_HAS_ERRNO
  613. #else
  614. #   undef  GETNETBYNAME_R_HAS_ERRNO
  615. #endif
  616.  
  617. /* Any of the getnetent getnetbyaddr getnetbyname using errno? */
  618.  
  619. #if (defined(GETNETENT_R_HAS_ERRNO) || defined(GETNETBYADDR_R_HAS_ERRNO) || defined(GETNETBYNAME_R_HAS_ERRNO))
  620. #   define USE_NETENT_ERRNO
  621. #else
  622. #   undef  USE_NETENT_ERRNO
  623. #endif
  624.  
  625.  
  626. typedef struct {
  627. #ifdef HAS_ASCTIME_R
  628.     char*    _asctime_buffer;
  629.     size_t    _asctime_size;
  630. #endif /* HAS_ASCTIME_R */
  631. #ifdef HAS_CRYPT_R
  632. #if CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD
  633.     CRYPTD* _crypt_data;
  634. #else
  635.     struct crypt_data *_crypt_struct_buffer;
  636. #endif
  637. #endif /* HAS_CRYPT_R */
  638. #ifdef HAS_CTIME_R
  639.     char*    _ctime_buffer;
  640.     size_t    _ctime_size;
  641. #endif /* HAS_CTIME_R */
  642. #ifdef HAS_DRAND48_R
  643.     struct drand48_data _drand48_struct;
  644.     double    _drand48_double;
  645. #endif /* HAS_DRAND48_R */
  646. #ifdef HAS_GETGRNAM_R
  647.     struct group    _grent_struct;
  648.     char*    _grent_buffer;
  649.     size_t    _grent_size;
  650. #   ifdef USE_GRENT_PTR
  651.     struct group*    _grent_ptr;
  652. #   endif
  653. #   ifdef USE_GRENT_FPTR
  654.     FILE*    _grent_fptr;
  655. #   endif
  656. #endif /* HAS_GETGRNAM_R */
  657. #ifdef HAS_GETHOSTBYNAME_R
  658.     struct hostent    _hostent_struct;
  659. #   if GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
  660.     struct hostent_data    _hostent_data;
  661. #   else
  662.     char*    _hostent_buffer;
  663.     size_t    _hostent_size;
  664. #   endif
  665. #   ifdef USE_HOSTENT_PTR
  666.     struct hostent*    _hostent_ptr;
  667. #   endif
  668. #   ifdef USE_HOSTENT_ERRNO
  669.     int    _hostent_errno;
  670. #   endif 
  671. #endif /* HAS_GETHOSTBYNAME_R */
  672. #ifdef HAS_GETLOGIN_R
  673.     char*    _getlogin_buffer;
  674.     size_t    _getlogin_size;
  675. #endif /* HAS_GETLOGIN_R */
  676. #ifdef HAS_GETNETBYNAME_R
  677.     struct netent    _netent_struct;
  678. #   if GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
  679.     struct netent_data    _netent_data;
  680. #   else
  681.     char*    _netent_buffer;
  682.     size_t    _netent_size;
  683. #   endif
  684. #   ifdef USE_NETENT_PTR
  685.     struct netent*    _netent_ptr;
  686. #   endif
  687. #   ifdef USE_NETENT_ERRNO
  688.     int    _netent_errno;
  689. #   endif 
  690. #endif /* HAS_GETNETBYNAME_R */
  691. #ifdef HAS_GETPROTOBYNAME_R
  692.     struct protoent    _protoent_struct;
  693. #   if GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
  694.     struct protoent_data    _protoent_data;
  695. #   else
  696.     char*    _protoent_buffer;
  697.     size_t    _protoent_size;
  698. #   endif
  699. #   ifdef USE_PROTOENT_PTR
  700.     struct protoent*    _protoent_ptr;
  701. #   endif
  702. #   ifdef USE_PROTOENT_ERRNO
  703.     int    _protoent_errno;
  704. #   endif 
  705. #endif /* HAS_GETPROTOBYNAME_R */
  706. #ifdef HAS_GETPWNAM_R
  707.     struct passwd    _pwent_struct;
  708.     char*    _pwent_buffer;
  709.     size_t    _pwent_size;
  710. #   ifdef USE_PWENT_PTR
  711.     struct passwd*    _pwent_ptr;
  712. #   endif
  713. #   ifdef USE_PWENT_FPTR
  714.     FILE*    _pwent_fptr;
  715. #   endif
  716. #endif /* HAS_GETPWNAM_R */
  717. #ifdef HAS_GETSERVBYNAME_R
  718.     struct servent    _servent_struct;
  719. #   if GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSD
  720.     struct servent_data    _servent_data;
  721. #   else
  722.     char*    _servent_buffer;
  723.     size_t    _servent_size;
  724. #   endif
  725. #   ifdef USE_SERVENT_PTR
  726.     struct servent*    _servent_ptr;
  727. #   endif
  728. #   ifdef USE_SERVENT_ERRNO
  729.     int    _servent_errno;
  730. #   endif 
  731. #endif /* HAS_GETSERVBYNAME_R */
  732. #ifdef HAS_GETSPNAM_R
  733.     struct spwd    _spent_struct;
  734.     char*    _spent_buffer;
  735.     size_t    _spent_size;
  736. #   ifdef USE_SPENT_PTR
  737.     struct spwd*    _spent_ptr;
  738. #   endif
  739. #   ifdef USE_SPENT_FPTR
  740.     FILE*    _spent_fptr;
  741. #   endif
  742. #endif /* HAS_GETSPNAM_R */
  743. #ifdef HAS_GMTIME_R
  744.     struct tm _gmtime_struct;
  745. #endif /* HAS_GMTIME_R */
  746. #ifdef HAS_LOCALTIME_R
  747.     struct tm _localtime_struct;
  748. #endif /* HAS_LOCALTIME_R */
  749. #ifdef HAS_RANDOM_R
  750.     struct random_data _random_struct;
  751. #   if RANDOM_R_PROTO == REENTRANT_PROTO_I_iS
  752.     int    _random_retval;
  753. #   endif
  754. #   if RANDOM_R_PROTO == REENTRANT_PROTO_I_lS
  755.     long    _random_retval;
  756. #   endif
  757. #   if RANDOM_R_PROTO == REENTRANT_PROTO_I_St
  758.     int32_t    _random_retval;
  759. #   endif
  760. #endif /* HAS_RANDOM_R */
  761. #ifdef HAS_READDIR_R
  762.     struct dirent*    _readdir_struct;
  763.     size_t    _readdir_size;
  764. #   if READDIR_R_PROTO == REENTRANT_PROTO_I_TSR
  765.     struct dirent*    _readdir_ptr;
  766. #   endif
  767. #endif /* HAS_READDIR_R */
  768. #ifdef HAS_READDIR64_R
  769.     struct dirent64*    _readdir64_struct;
  770.     size_t    _readdir64_size;
  771. #   if READDIR64_R_PROTO == REENTRANT_PROTO_I_TSR
  772.     struct dirent64*    _readdir64_ptr;
  773. #   endif
  774. #endif /* HAS_READDIR64_R */
  775. #ifdef HAS_SETLOCALE_R
  776.     char*    _setlocale_buffer;
  777.     size_t    _setlocale_size;
  778. #endif /* HAS_SETLOCALE_R */
  779. #ifdef HAS_SRANDOM_R
  780.     struct random_data _srandom_struct;
  781. #endif /* HAS_SRANDOM_R */
  782. #ifdef HAS_STRERROR_R
  783.     char*    _strerror_buffer;
  784.     size_t    _strerror_size;
  785. #endif /* HAS_STRERROR_R */
  786. #ifdef HAS_TTYNAME_R
  787.     char*    _ttyname_buffer;
  788.     size_t    _ttyname_size;
  789. #endif /* HAS_TTYNAME_R */
  790.  
  791.     int dummy; /* cannot have empty structs */
  792. } REENTR;
  793.  
  794. /* The wrappers. */
  795.  
  796. #ifdef HAS_ASCTIME_R
  797. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  798. #   undef asctime
  799. #   if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_B_SB
  800. #       define asctime(a) asctime_r(a, PL_reentrant_buffer->_asctime_buffer)
  801. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  802. #   if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_B_SBI
  803. #       define asctime(a) asctime_r(a, PL_reentrant_buffer->_asctime_buffer, PL_reentrant_buffer->_asctime_size)
  804. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  805. #   if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_I_SB
  806. #       define asctime(a) (asctime_r(a, PL_reentrant_buffer->_asctime_buffer) == 0 ? PL_reentrant_buffer->_asctime_buffer : 0)
  807. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  808. #   if !defined(asctime) && ASCTIME_R_PROTO == REENTRANT_PROTO_I_SBI
  809. #       define asctime(a) (asctime_r(a, PL_reentrant_buffer->_asctime_buffer, PL_reentrant_buffer->_asctime_size) == 0 ? PL_reentrant_buffer->_asctime_buffer : 0)
  810. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  811. #   endif /* HAS_ASCTIME */
  812. #endif /* HAS_ASCTIME_R */
  813.  
  814. #ifdef HAS_CRYPT_R
  815. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  816. #   undef crypt
  817. #   if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCS
  818. #       define crypt(a, b) crypt_r(a, b, PL_reentrant_buffer->_crypt_struct_buffer)
  819. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  820. #   if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD
  821. #       define crypt(a, b) crypt_r(a, b, &PL_reentrant_buffer->_crypt_data)
  822. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  823. #   endif /* HAS_CRYPT */
  824. #endif /* HAS_CRYPT_R */
  825.  
  826. #ifdef HAS_CTERMID_R
  827. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  828. #   undef ctermid
  829. #   if !defined(ctermid) && CTERMID_R_PROTO == REENTRANT_PROTO_B_B
  830. #       define ctermid(a) ctermid_r(a)
  831. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  832. #   endif /* HAS_CTERMID */
  833. #endif /* HAS_CTERMID_R */
  834.  
  835. #ifdef HAS_CTIME_R
  836. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  837. #   undef ctime
  838. #   if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_B_SB
  839. #       define ctime(a) ctime_r(a, PL_reentrant_buffer->_ctime_buffer)
  840. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  841. #   if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_B_SBI
  842. #       define ctime(a) ctime_r(a, PL_reentrant_buffer->_ctime_buffer, PL_reentrant_buffer->_ctime_size)
  843. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  844. #   if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_I_SB
  845. #       define ctime(a) (ctime_r(a, PL_reentrant_buffer->_ctime_buffer) == 0 ? PL_reentrant_buffer->_ctime_buffer : 0)
  846. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  847. #   if !defined(ctime) && CTIME_R_PROTO == REENTRANT_PROTO_I_SBI
  848. #       define ctime(a) (ctime_r(a, PL_reentrant_buffer->_ctime_buffer, PL_reentrant_buffer->_ctime_size) == 0 ? PL_reentrant_buffer->_ctime_buffer : 0)
  849. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  850. #   endif /* HAS_CTIME */
  851. #endif /* HAS_CTIME_R */
  852.  
  853. #ifdef HAS_DRAND48_R
  854. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  855. #   undef drand48
  856. #   if !defined(drand48) && DRAND48_R_PROTO == REENTRANT_PROTO_I_ST
  857. #       define drand48() (drand48_r(&PL_reentrant_buffer->_drand48_struct, &PL_reentrant_buffer->_drand48_double) == 0 ? PL_reentrant_buffer->_drand48_double : 0)
  858. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  859. #   endif /* HAS_DRAND48 */
  860. #endif /* HAS_DRAND48_R */
  861.  
  862. #ifdef HAS_ENDGRENT_R
  863. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  864. #   undef endgrent
  865. #   if !defined(endgrent) && ENDGRENT_R_PROTO == REENTRANT_PROTO_I_H
  866. #       define endgrent() (endgrent_r(&PL_reentrant_buffer->_grent_fptr) == 0 ? 1 : 0)
  867. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  868. #   if !defined(endgrent) && ENDGRENT_R_PROTO == REENTRANT_PROTO_V_H
  869. #       define endgrent() endgrent_r(&PL_reentrant_buffer->_grent_fptr)
  870. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  871. #   endif /* HAS_ENDGRENT */
  872. #endif /* HAS_ENDGRENT_R */
  873.  
  874. #ifdef HAS_ENDHOSTENT_R
  875. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  876. #   undef endhostent
  877. #   if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_I_D
  878. #       define endhostent() (endhostent_r(&PL_reentrant_buffer->_hostent_data) == 0 ? 1 : 0)
  879. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  880. #   if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_V_D
  881. #       define endhostent() endhostent_r(&PL_reentrant_buffer->_hostent_data)
  882. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  883. #   endif /* HAS_ENDHOSTENT */
  884. #endif /* HAS_ENDHOSTENT_R */
  885.  
  886. #ifdef HAS_ENDNETENT_R
  887. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  888. #   undef endnetent
  889. #   if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_I_D
  890. #       define endnetent() (endnetent_r(&PL_reentrant_buffer->_netent_data) == 0 ? 1 : 0)
  891. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  892. #   if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_V_D
  893. #       define endnetent() endnetent_r(&PL_reentrant_buffer->_netent_data)
  894. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  895. #   endif /* HAS_ENDNETENT */
  896. #endif /* HAS_ENDNETENT_R */
  897.  
  898. #ifdef HAS_ENDPROTOENT_R
  899. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  900. #   undef endprotoent
  901. #   if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_I_D
  902. #       define endprotoent() (endprotoent_r(&PL_reentrant_buffer->_protoent_data) == 0 ? 1 : 0)
  903. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  904. #   if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_V_D
  905. #       define endprotoent() endprotoent_r(&PL_reentrant_buffer->_protoent_data)
  906. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  907. #   endif /* HAS_ENDPROTOENT */
  908. #endif /* HAS_ENDPROTOENT_R */
  909.  
  910. #ifdef HAS_ENDPWENT_R
  911. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  912. #   undef endpwent
  913. #   if !defined(endpwent) && ENDPWENT_R_PROTO == REENTRANT_PROTO_I_H
  914. #       define endpwent() (endpwent_r(&PL_reentrant_buffer->_pwent_fptr) == 0 ? 1 : 0)
  915. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  916. #   if !defined(endpwent) && ENDPWENT_R_PROTO == REENTRANT_PROTO_V_H
  917. #       define endpwent() endpwent_r(&PL_reentrant_buffer->_pwent_fptr)
  918. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  919. #   endif /* HAS_ENDPWENT */
  920. #endif /* HAS_ENDPWENT_R */
  921.  
  922. #ifdef HAS_ENDSERVENT_R
  923. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  924. #   undef endservent
  925. #   if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_I_D
  926. #       define endservent() (endservent_r(&PL_reentrant_buffer->_servent_data) == 0 ? 1 : 0)
  927. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  928. #   if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_V_D
  929. #       define endservent() endservent_r(&PL_reentrant_buffer->_servent_data)
  930. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  931. #   endif /* HAS_ENDSERVENT */
  932. #endif /* HAS_ENDSERVENT_R */
  933.  
  934. #ifdef HAS_GETGRENT_R
  935. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  936. #   undef getgrent
  937. #   if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBWR
  938. #       define getgrent() ((PL_reentrant_retint = getgrent_r(&PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size, &PL_reentrant_buffer->_grent_ptr)) == 0 ? PL_reentrant_buffer->_grent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrent") : 0))
  939. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  940. #   if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIR
  941. #       define getgrent() ((PL_reentrant_retint = getgrent_r(&PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size, &PL_reentrant_buffer->_grent_ptr)) == 0 ? PL_reentrant_buffer->_grent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrent") : 0))
  942. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  943. #   if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBW
  944. #       define getgrent() (getgrent_r(&PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size) ? &PL_reentrant_buffer->_grent_struct : ((errno == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrent") : 0))
  945. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  946. #   if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_S_SBI
  947. #       define getgrent() (getgrent_r(&PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size) ? &PL_reentrant_buffer->_grent_struct : ((errno == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrent") : 0))
  948. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  949. #   if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBI
  950. #       define getgrent() ((PL_reentrant_retint = getgrent_r(&PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size)) == 0 ? &PL_reentrant_buffer->_grent_struct : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrent") : 0))
  951. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  952. #   if !defined(getgrent) && GETGRENT_R_PROTO == REENTRANT_PROTO_I_SBIH
  953. #       define getgrent() ((PL_reentrant_retint = getgrent_r(&PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size, &PL_reentrant_buffer->_grent_fptr)) == 0 ? &PL_reentrant_buffer->_grent_struct : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrent") : 0))
  954. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  955. #   endif /* HAS_GETGRENT */
  956. #endif /* HAS_GETGRENT_R */
  957.  
  958. #ifdef HAS_GETGRGID_R
  959. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  960. #   undef getgrgid
  961. #   if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBWR
  962. #       define getgrgid(a) ((PL_reentrant_retint = getgrgid_r(a, &PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size, &PL_reentrant_buffer->_grent_ptr)) == 0 ? PL_reentrant_buffer->_grent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrgid", a) : 0))
  963. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  964. #   if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBIR
  965. #       define getgrgid(a) ((PL_reentrant_retint = getgrgid_r(a, &PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size, &PL_reentrant_buffer->_grent_ptr)) == 0 ? PL_reentrant_buffer->_grent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrgid", a) : 0))
  966. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  967. #   if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_I_TSBI
  968. #       define getgrgid(a) ((PL_reentrant_retint = getgrgid_r(a, &PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size)) == 0 ? &PL_reentrant_buffer->_grent_struct : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrgid", a) : 0))
  969. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  970. #   if !defined(getgrgid) && GETGRGID_R_PROTO == REENTRANT_PROTO_S_TSBI
  971. #       define getgrgid(a) (getgrgid_r(a, &PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size) ? &PL_reentrant_buffer->_grent_struct : ((errno == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrgid", a) : 0))
  972. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  973. #   endif /* HAS_GETGRGID */
  974. #endif /* HAS_GETGRGID_R */
  975.  
  976. #ifdef HAS_GETGRNAM_R
  977. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  978. #   undef getgrnam
  979. #   if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR
  980. #       define getgrnam(a) ((PL_reentrant_retint = getgrnam_r(a, &PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size, &PL_reentrant_buffer->_grent_ptr)) == 0 ? PL_reentrant_buffer->_grent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrnam", a) : 0))
  981. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  982. #   if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR
  983. #       define getgrnam(a) ((PL_reentrant_retint = getgrnam_r(a, &PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size, &PL_reentrant_buffer->_grent_ptr)) == 0 ? PL_reentrant_buffer->_grent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrnam", a) : 0))
  984. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  985. #   if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CBI
  986. #       define getgrnam(a) (getgrnam_r(a, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size) ? PL_reentrant_buffer->_grent_buffer : ((errno == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrnam", a) : 0))
  987. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  988. #   if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_I_CSBI
  989. #       define getgrnam(a) ((PL_reentrant_retint = getgrnam_r(a, &PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size)) == 0 ? &PL_reentrant_buffer->_grent_struct : ((PL_reentrant_retint == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrnam", a) : 0))
  990. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  991. #   if !defined(getgrnam) && GETGRNAM_R_PROTO == REENTRANT_PROTO_S_CSBI
  992. #       define getgrnam(a) (getgrnam_r(a, &PL_reentrant_buffer->_grent_struct, PL_reentrant_buffer->_grent_buffer, PL_reentrant_buffer->_grent_size) ? &PL_reentrant_buffer->_grent_struct : ((errno == ERANGE) ? (struct group *) Perl_reentrant_retry("getgrnam", a) : 0))
  993. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  994. #   endif /* HAS_GETGRNAM */
  995. #endif /* HAS_GETGRNAM_R */
  996.  
  997. #ifdef HAS_GETHOSTBYADDR_R
  998. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  999. #   undef gethostbyaddr
  1000. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISBWRE
  1001. #       define gethostbyaddr(a, b, c) ((PL_reentrant_retint = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_ptr, &PL_reentrant_buffer->_hostent_errno)) == 0 ? PL_reentrant_buffer->_hostent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1002. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1003. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBWIE
  1004. #       define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_errno) ? &PL_reentrant_buffer->_hostent_struct : ((errno == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1005. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1006. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CWISBIE
  1007. #       define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_errno) ? &PL_reentrant_buffer->_hostent_struct : ((errno == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1008. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1009. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TWISBIE
  1010. #       define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_errno) ? &PL_reentrant_buffer->_hostent_struct : ((errno == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1011. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1012. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CIISBIE
  1013. #       define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_errno) ? &PL_reentrant_buffer->_hostent_struct : ((errno == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1014. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1015. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_CSBIE
  1016. #       define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_errno) ? 1 : ((errno == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1017. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1018. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_S_TSBIE
  1019. #       define gethostbyaddr(a, b, c) (gethostbyaddr_r(a, b, c, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_errno) ? 1 : ((errno == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1020. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1021. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CWISD
  1022. #       define gethostbyaddr(a, b, c) ((PL_reentrant_retint = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_hostent_struct, &PL_reentrant_buffer->_hostent_data)) == 0 ? &PL_reentrant_buffer->_hostent_struct : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1023. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1024. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CIISD
  1025. #       define gethostbyaddr(a, b, c) ((PL_reentrant_retint = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_hostent_struct, &PL_reentrant_buffer->_hostent_data)) == 0 ? &PL_reentrant_buffer->_hostent_struct : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1026. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1027. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_CII
  1028. #       define gethostbyaddr(a, b, c) ((PL_reentrant_retint = gethostbyaddr_r(a, b, c)) == 0 ? 1 : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1029. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1030. #   if !defined(gethostbyaddr) && GETHOSTBYADDR_R_PROTO == REENTRANT_PROTO_I_TsISBWRE
  1031. #       define gethostbyaddr(a, b, c) ((PL_reentrant_retint = gethostbyaddr_r(a, b, c, &PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_ptr, &PL_reentrant_buffer->_hostent_errno)) == 0 ? PL_reentrant_buffer->_hostent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyaddr", a, b, c) : 0))
  1032. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1033. #   endif /* HAS_GETHOSTBYADDR */
  1034. #endif /* HAS_GETHOSTBYADDR_R */
  1035.  
  1036. #ifdef HAS_GETHOSTBYNAME_R
  1037. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1038. #   undef gethostbyname
  1039. #   if !defined(gethostbyname) && GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE
  1040. #       define gethostbyname(a) ((PL_reentrant_retint = gethostbyname_r(a, &PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_ptr, &PL_reentrant_buffer->_hostent_errno)) == 0 ? PL_reentrant_buffer->_hostent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyname", a) : 0))
  1041. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1042. #   if !defined(gethostbyname) && GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBIE
  1043. #       define gethostbyname(a) (gethostbyname_r(a, &PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_errno) ? &PL_reentrant_buffer->_hostent_struct : ((errno == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyname", a) : 0))
  1044. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1045. #   if !defined(gethostbyname) && GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
  1046. #       define gethostbyname(a) ((PL_reentrant_retint = gethostbyname_r(a, &PL_reentrant_buffer->_hostent_struct, &PL_reentrant_buffer->_hostent_data)) == 0 ? &PL_reentrant_buffer->_hostent_struct : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostbyname", a) : 0))
  1047. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1048. #   endif /* HAS_GETHOSTBYNAME */
  1049. #endif /* HAS_GETHOSTBYNAME_R */
  1050.  
  1051. #ifdef HAS_GETHOSTENT_R
  1052. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1053. #   undef gethostent
  1054. #   if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBWRE
  1055. #       define gethostent() ((PL_reentrant_retint = gethostent_r(&PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_ptr, &PL_reentrant_buffer->_hostent_errno)) == 0 ? PL_reentrant_buffer->_hostent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostent") : 0))
  1056. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1057. #   if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBIE
  1058. #       define gethostent() ((PL_reentrant_retint = gethostent_r(&PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_errno)) == 0 ? &PL_reentrant_buffer->_hostent_struct : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostent") : 0))
  1059. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1060. #   if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBIE
  1061. #       define gethostent() (gethostent_r(&PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size, &PL_reentrant_buffer->_hostent_errno) ? &PL_reentrant_buffer->_hostent_struct : ((errno == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostent") : 0))
  1062. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1063. #   if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_S_SBI
  1064. #       define gethostent() (gethostent_r(&PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size) ? &PL_reentrant_buffer->_hostent_struct : ((errno == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostent") : 0))
  1065. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1066. #   if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SBI
  1067. #       define gethostent() ((PL_reentrant_retint = gethostent_r(&PL_reentrant_buffer->_hostent_struct, PL_reentrant_buffer->_hostent_buffer, PL_reentrant_buffer->_hostent_size)) == 0 ? &PL_reentrant_buffer->_hostent_struct : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostent") : 0))
  1068. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1069. #   if !defined(gethostent) && GETHOSTENT_R_PROTO == REENTRANT_PROTO_I_SD
  1070. #       define gethostent() ((PL_reentrant_retint = gethostent_r(&PL_reentrant_buffer->_hostent_struct, &PL_reentrant_buffer->_hostent_data)) == 0 ? &PL_reentrant_buffer->_hostent_struct : ((PL_reentrant_retint == ERANGE) ? (struct hostent *) Perl_reentrant_retry("gethostent") : 0))
  1071. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1072. #   endif /* HAS_GETHOSTENT */
  1073. #endif /* HAS_GETHOSTENT_R */
  1074.  
  1075. #ifdef HAS_GETLOGIN_R
  1076. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1077. #   undef getlogin
  1078. #   if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_I_BW
  1079. #       define getlogin() ((PL_reentrant_retint = getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size)) == 0 ? PL_reentrant_buffer->_getlogin_buffer : ((PL_reentrant_retint == ERANGE) ? (char *) Perl_reentrant_retry("getlogin") : 0))
  1080. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1081. #   if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_I_BI
  1082. #       define getlogin() ((PL_reentrant_retint = getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size)) == 0 ? PL_reentrant_buffer->_getlogin_buffer : ((PL_reentrant_retint == ERANGE) ? (char *) Perl_reentrant_retry("getlogin") : 0))
  1083. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1084. #   if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_B_BW
  1085. #       define getlogin() getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size)
  1086. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1087. #   if !defined(getlogin) && GETLOGIN_R_PROTO == REENTRANT_PROTO_B_BI
  1088. #       define getlogin() getlogin_r(PL_reentrant_buffer->_getlogin_buffer, PL_reentrant_buffer->_getlogin_size)
  1089. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1090. #   endif /* HAS_GETLOGIN */
  1091. #endif /* HAS_GETLOGIN_R */
  1092.  
  1093. #ifdef HAS_GETNETBYADDR_R
  1094. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1095. #   undef getnetbyaddr
  1096. #   if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_UISBWRE
  1097. #       define getnetbyaddr(a, b) ((PL_reentrant_retint = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size, &PL_reentrant_buffer->_netent_ptr, &PL_reentrant_buffer->_netent_errno)) == 0 ? PL_reentrant_buffer->_netent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
  1098. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1099. #   if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_LISBI
  1100. #       define getnetbyaddr(a, b) ((PL_reentrant_retint = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
  1101. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1102. #   if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_TISBI
  1103. #       define getnetbyaddr(a, b) (getnetbyaddr_r(a, b, &PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size) ? &PL_reentrant_buffer->_netent_struct : ((errno == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
  1104. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1105. #   if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_S_LISBI
  1106. #       define getnetbyaddr(a, b) (getnetbyaddr_r(a, b, &PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size) ? &PL_reentrant_buffer->_netent_struct : ((errno == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
  1107. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1108. #   if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_TISD
  1109. #       define getnetbyaddr(a, b) ((PL_reentrant_retint = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_netent_struct, &PL_reentrant_buffer->_netent_data)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
  1110. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1111. #   if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_LISD
  1112. #       define getnetbyaddr(a, b) ((PL_reentrant_retint = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_netent_struct, &PL_reentrant_buffer->_netent_data)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
  1113. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1114. #   if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_IISD
  1115. #       define getnetbyaddr(a, b) ((PL_reentrant_retint = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_netent_struct, &PL_reentrant_buffer->_netent_data)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
  1116. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1117. #   if !defined(getnetbyaddr) && GETNETBYADDR_R_PROTO == REENTRANT_PROTO_I_uISBWRE
  1118. #       define getnetbyaddr(a, b) ((PL_reentrant_retint = getnetbyaddr_r(a, b, &PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size, &PL_reentrant_buffer->_netent_ptr, &PL_reentrant_buffer->_netent_errno)) == 0 ? PL_reentrant_buffer->_netent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyaddr", a, b) : 0))
  1119. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1120. #   endif /* HAS_GETNETBYADDR */
  1121. #endif /* HAS_GETNETBYADDR_R */
  1122.  
  1123. #ifdef HAS_GETNETBYNAME_R
  1124. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1125. #   undef getnetbyname
  1126. #   if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWRE
  1127. #       define getnetbyname(a) ((PL_reentrant_retint = getnetbyname_r(a, &PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size, &PL_reentrant_buffer->_netent_ptr, &PL_reentrant_buffer->_netent_errno)) == 0 ? PL_reentrant_buffer->_netent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyname", a) : 0))
  1128. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1129. #   if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBI
  1130. #       define getnetbyname(a) ((PL_reentrant_retint = getnetbyname_r(a, &PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyname", a) : 0))
  1131. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1132. #   if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI
  1133. #       define getnetbyname(a) (getnetbyname_r(a, &PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size) ? &PL_reentrant_buffer->_netent_struct : ((errno == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyname", a) : 0))
  1134. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1135. #   if !defined(getnetbyname) && GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
  1136. #       define getnetbyname(a) ((PL_reentrant_retint = getnetbyname_r(a, &PL_reentrant_buffer->_netent_struct, &PL_reentrant_buffer->_netent_data)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetbyname", a) : 0))
  1137. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1138. #   endif /* HAS_GETNETBYNAME */
  1139. #endif /* HAS_GETNETBYNAME_R */
  1140.  
  1141. #ifdef HAS_GETNETENT_R
  1142. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1143. #   undef getnetent
  1144. #   if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBWRE
  1145. #       define getnetent() ((PL_reentrant_retint = getnetent_r(&PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size, &PL_reentrant_buffer->_netent_ptr, &PL_reentrant_buffer->_netent_errno)) == 0 ? PL_reentrant_buffer->_netent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetent") : 0))
  1146. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1147. #   if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBIE
  1148. #       define getnetent() ((PL_reentrant_retint = getnetent_r(&PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size, &PL_reentrant_buffer->_netent_errno)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetent") : 0))
  1149. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1150. #   if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBIE
  1151. #       define getnetent() (getnetent_r(&PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size, &PL_reentrant_buffer->_netent_errno) ? &PL_reentrant_buffer->_netent_struct : ((errno == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetent") : 0))
  1152. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1153. #   if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_S_SBI
  1154. #       define getnetent() (getnetent_r(&PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size) ? &PL_reentrant_buffer->_netent_struct : ((errno == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetent") : 0))
  1155. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1156. #   if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SBI
  1157. #       define getnetent() ((PL_reentrant_retint = getnetent_r(&PL_reentrant_buffer->_netent_struct, PL_reentrant_buffer->_netent_buffer, PL_reentrant_buffer->_netent_size)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetent") : 0))
  1158. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1159. #   if !defined(getnetent) && GETNETENT_R_PROTO == REENTRANT_PROTO_I_SD
  1160. #       define getnetent() ((PL_reentrant_retint = getnetent_r(&PL_reentrant_buffer->_netent_struct, &PL_reentrant_buffer->_netent_data)) == 0 ? &PL_reentrant_buffer->_netent_struct : ((PL_reentrant_retint == ERANGE) ? (struct netent *) Perl_reentrant_retry("getnetent") : 0))
  1161. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1162. #   endif /* HAS_GETNETENT */
  1163. #endif /* HAS_GETNETENT_R */
  1164.  
  1165. #ifdef HAS_GETPROTOBYNAME_R
  1166. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1167. #   undef getprotobyname
  1168. #   if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSBWR
  1169. #       define getprotobyname(a) ((PL_reentrant_retint = getprotobyname_r(a, &PL_reentrant_buffer->_protoent_struct, PL_reentrant_buffer->_protoent_buffer, PL_reentrant_buffer->_protoent_size, &PL_reentrant_buffer->_protoent_ptr)) == 0 ? PL_reentrant_buffer->_protoent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotobyname", a) : 0))
  1170. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1171. #   if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_S_CSBI
  1172. #       define getprotobyname(a) (getprotobyname_r(a, &PL_reentrant_buffer->_protoent_struct, PL_reentrant_buffer->_protoent_buffer, PL_reentrant_buffer->_protoent_size) ? &PL_reentrant_buffer->_protoent_struct : ((errno == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotobyname", a) : 0))
  1173. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1174. #   if !defined(getprotobyname) && GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
  1175. #       define getprotobyname(a) (REENTR_MEMZERO(&PL_reentrant_buffer->_protoent_data, sizeof(PL_reentrant_buffer->_protoent_data)),(PL_reentrant_retint = getprotobyname_r(a, &PL_reentrant_buffer->_protoent_struct, &PL_reentrant_buffer->_protoent_data)) == 0 ? &PL_reentrant_buffer->_protoent_struct : ((PL_reentrant_retint == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotobyname", a) : 0))
  1176. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1177. #   endif /* HAS_GETPROTOBYNAME */
  1178. #endif /* HAS_GETPROTOBYNAME_R */
  1179.  
  1180. #ifdef HAS_GETPROTOBYNUMBER_R
  1181. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1182. #   undef getprotobynumber
  1183. #   if !defined(getprotobynumber) && GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISBWR
  1184. #       define getprotobynumber(a) ((PL_reentrant_retint = getprotobynumber_r(a, &PL_reentrant_buffer->_protoent_struct, PL_reentrant_buffer->_protoent_buffer, PL_reentrant_buffer->_protoent_size, &PL_reentrant_buffer->_protoent_ptr)) == 0 ? PL_reentrant_buffer->_protoent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotobynumber", a) : 0))
  1185. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1186. #   if !defined(getprotobynumber) && GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_S_ISBI
  1187. #       define getprotobynumber(a) (getprotobynumber_r(a, &PL_reentrant_buffer->_protoent_struct, PL_reentrant_buffer->_protoent_buffer, PL_reentrant_buffer->_protoent_size) ? &PL_reentrant_buffer->_protoent_struct : ((errno == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotobynumber", a) : 0))
  1188. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1189. #   if !defined(getprotobynumber) && GETPROTOBYNUMBER_R_PROTO == REENTRANT_PROTO_I_ISD
  1190. #       define getprotobynumber(a) (REENTR_MEMZERO(&PL_reentrant_buffer->_protoent_data, sizeof(PL_reentrant_buffer->_protoent_data)),(PL_reentrant_retint = getprotobynumber_r(a, &PL_reentrant_buffer->_protoent_struct, &PL_reentrant_buffer->_protoent_data)) == 0 ? &PL_reentrant_buffer->_protoent_struct : ((PL_reentrant_retint == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotobynumber", a) : 0))
  1191. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1192. #   endif /* HAS_GETPROTOBYNUMBER */
  1193. #endif /* HAS_GETPROTOBYNUMBER_R */
  1194.  
  1195. #ifdef HAS_GETPROTOENT_R
  1196. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1197. #   undef getprotoent
  1198. #   if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBWR
  1199. #       define getprotoent() ((PL_reentrant_retint = getprotoent_r(&PL_reentrant_buffer->_protoent_struct, PL_reentrant_buffer->_protoent_buffer, PL_reentrant_buffer->_protoent_size, &PL_reentrant_buffer->_protoent_ptr)) == 0 ? PL_reentrant_buffer->_protoent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotoent") : 0))
  1200. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1201. #   if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SBI
  1202. #       define getprotoent() ((PL_reentrant_retint = getprotoent_r(&PL_reentrant_buffer->_protoent_struct, PL_reentrant_buffer->_protoent_buffer, PL_reentrant_buffer->_protoent_size)) == 0 ? &PL_reentrant_buffer->_protoent_struct : ((PL_reentrant_retint == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotoent") : 0))
  1203. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1204. #   if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_S_SBI
  1205. #       define getprotoent() (getprotoent_r(&PL_reentrant_buffer->_protoent_struct, PL_reentrant_buffer->_protoent_buffer, PL_reentrant_buffer->_protoent_size) ? &PL_reentrant_buffer->_protoent_struct : ((errno == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotoent") : 0))
  1206. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1207. #   if !defined(getprotoent) && GETPROTOENT_R_PROTO == REENTRANT_PROTO_I_SD
  1208. #       define getprotoent() (REENTR_MEMZERO(&PL_reentrant_buffer->_protoent_data, sizeof(PL_reentrant_buffer->_protoent_data)),(PL_reentrant_retint = getprotoent_r(&PL_reentrant_buffer->_protoent_struct, &PL_reentrant_buffer->_protoent_data)) == 0 ? &PL_reentrant_buffer->_protoent_struct : ((PL_reentrant_retint == ERANGE) ? (struct protoent *) Perl_reentrant_retry("getprotoent") : 0))
  1209. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1210. #   endif /* HAS_GETPROTOENT */
  1211. #endif /* HAS_GETPROTOENT_R */
  1212.  
  1213. #ifdef HAS_GETPWENT_R
  1214. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1215. #   undef getpwent
  1216. #   if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBWR
  1217. #       define getpwent() ((PL_reentrant_retint = getpwent_r(&PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size, &PL_reentrant_buffer->_pwent_ptr)) == 0 ? PL_reentrant_buffer->_pwent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwent") : 0))
  1218. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1219. #   if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIR
  1220. #       define getpwent() ((PL_reentrant_retint = getpwent_r(&PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size, &PL_reentrant_buffer->_pwent_ptr)) == 0 ? PL_reentrant_buffer->_pwent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwent") : 0))
  1221. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1222. #   if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBW
  1223. #       define getpwent() (getpwent_r(&PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size) ? &PL_reentrant_buffer->_pwent_struct : ((errno == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwent") : 0))
  1224. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1225. #   if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_S_SBI
  1226. #       define getpwent() (getpwent_r(&PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size) ? &PL_reentrant_buffer->_pwent_struct : ((errno == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwent") : 0))
  1227. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1228. #   if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBI
  1229. #       define getpwent() ((PL_reentrant_retint = getpwent_r(&PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size)) == 0 ? &PL_reentrant_buffer->_pwent_struct : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwent") : 0))
  1230. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1231. #   if !defined(getpwent) && GETPWENT_R_PROTO == REENTRANT_PROTO_I_SBIH
  1232. #       define getpwent() ((PL_reentrant_retint = getpwent_r(&PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size, &PL_reentrant_buffer->_pwent_fptr)) == 0 ? &PL_reentrant_buffer->_pwent_struct : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwent") : 0))
  1233. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1234. #   endif /* HAS_GETPWENT */
  1235. #endif /* HAS_GETPWENT_R */
  1236.  
  1237. #ifdef HAS_GETPWNAM_R
  1238. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1239. #   undef getpwnam
  1240. #   if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR
  1241. #       define getpwnam(a) ((PL_reentrant_retint = getpwnam_r(a, &PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size, &PL_reentrant_buffer->_pwent_ptr)) == 0 ? PL_reentrant_buffer->_pwent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwnam", a) : 0))
  1242. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1243. #   if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBIR
  1244. #       define getpwnam(a) ((PL_reentrant_retint = getpwnam_r(a, &PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size, &PL_reentrant_buffer->_pwent_ptr)) == 0 ? PL_reentrant_buffer->_pwent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwnam", a) : 0))
  1245. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1246. #   if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_S_CSBI
  1247. #       define getpwnam(a) (getpwnam_r(a, &PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size) ? &PL_reentrant_buffer->_pwent_struct : ((errno == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwnam", a) : 0))
  1248. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1249. #   if !defined(getpwnam) && GETPWNAM_R_PROTO == REENTRANT_PROTO_I_CSBI
  1250. #       define getpwnam(a) ((PL_reentrant_retint = getpwnam_r(a, &PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size)) == 0 ? &PL_reentrant_buffer->_pwent_struct : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwnam", a) : 0))
  1251. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1252. #   endif /* HAS_GETPWNAM */
  1253. #endif /* HAS_GETPWNAM_R */
  1254.  
  1255. #ifdef HAS_GETPWUID_R
  1256. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1257. #   undef getpwuid
  1258. #   if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBWR
  1259. #       define getpwuid(a) ((PL_reentrant_retint = getpwuid_r(a, &PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size, &PL_reentrant_buffer->_pwent_ptr)) == 0 ? PL_reentrant_buffer->_pwent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwuid", a) : 0))
  1260. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1261. #   if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBIR
  1262. #       define getpwuid(a) ((PL_reentrant_retint = getpwuid_r(a, &PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size, &PL_reentrant_buffer->_pwent_ptr)) == 0 ? PL_reentrant_buffer->_pwent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwuid", a) : 0))
  1263. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1264. #   if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_I_TSBI
  1265. #       define getpwuid(a) ((PL_reentrant_retint = getpwuid_r(a, &PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size)) == 0 ? &PL_reentrant_buffer->_pwent_struct : ((PL_reentrant_retint == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwuid", a) : 0))
  1266. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1267. #   if !defined(getpwuid) && GETPWUID_R_PROTO == REENTRANT_PROTO_S_TSBI
  1268. #       define getpwuid(a) (getpwuid_r(a, &PL_reentrant_buffer->_pwent_struct, PL_reentrant_buffer->_pwent_buffer, PL_reentrant_buffer->_pwent_size) ? &PL_reentrant_buffer->_pwent_struct : ((errno == ERANGE) ? (struct passwd *) Perl_reentrant_retry("getpwuid", a) : 0))
  1269. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1270. #   endif /* HAS_GETPWUID */
  1271. #endif /* HAS_GETPWUID_R */
  1272.  
  1273. #ifdef HAS_GETSERVBYNAME_R
  1274. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1275. #   undef getservbyname
  1276. #   if !defined(getservbyname) && GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSBWR
  1277. #       define getservbyname(a, b) ((PL_reentrant_retint = getservbyname_r(a, b, &PL_reentrant_buffer->_servent_struct, PL_reentrant_buffer->_servent_buffer, PL_reentrant_buffer->_servent_size, &PL_reentrant_buffer->_servent_ptr)) == 0 ? PL_reentrant_buffer->_servent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservbyname", a, b) : 0))
  1278. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1279. #   if !defined(getservbyname) && GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_S_CCSBI
  1280. #       define getservbyname(a, b) (getservbyname_r(a, b, &PL_reentrant_buffer->_servent_struct, PL_reentrant_buffer->_servent_buffer, PL_reentrant_buffer->_servent_size) ? &PL_reentrant_buffer->_servent_struct : ((errno == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservbyname", a, b) : 0))
  1281. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1282. #   if !defined(getservbyname) && GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSD
  1283. #       define getservbyname(a, b) (REENTR_MEMZERO(&PL_reentrant_buffer->_servent_data, sizeof(PL_reentrant_buffer->_servent_data)),(PL_reentrant_retint = getservbyname_r(a, b, &PL_reentrant_buffer->_servent_struct, &PL_reentrant_buffer->_servent_data)) == 0 ? &PL_reentrant_buffer->_servent_struct : ((PL_reentrant_retint == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservbyname", a, b) : 0))
  1284. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1285. #   endif /* HAS_GETSERVBYNAME */
  1286. #endif /* HAS_GETSERVBYNAME_R */
  1287.  
  1288. #ifdef HAS_GETSERVBYPORT_R
  1289. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1290. #   undef getservbyport
  1291. #   if !defined(getservbyport) && GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSBWR
  1292. #       define getservbyport(a, b) ((PL_reentrant_retint = getservbyport_r(a, b, &PL_reentrant_buffer->_servent_struct, PL_reentrant_buffer->_servent_buffer, PL_reentrant_buffer->_servent_size, &PL_reentrant_buffer->_servent_ptr)) == 0 ? PL_reentrant_buffer->_servent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservbyport", a, b) : 0))
  1293. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1294. #   if !defined(getservbyport) && GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_S_ICSBI
  1295. #       define getservbyport(a, b) (getservbyport_r(a, b, &PL_reentrant_buffer->_servent_struct, PL_reentrant_buffer->_servent_buffer, PL_reentrant_buffer->_servent_size) ? &PL_reentrant_buffer->_servent_struct : ((errno == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservbyport", a, b) : 0))
  1296. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1297. #   if !defined(getservbyport) && GETSERVBYPORT_R_PROTO == REENTRANT_PROTO_I_ICSD
  1298. #       define getservbyport(a, b) (REENTR_MEMZERO(&PL_reentrant_buffer->_servent_data, sizeof(PL_reentrant_buffer->_servent_data)),(PL_reentrant_retint = getservbyport_r(a, b, &PL_reentrant_buffer->_servent_struct, &PL_reentrant_buffer->_servent_data)) == 0 ? &PL_reentrant_buffer->_servent_struct : ((PL_reentrant_retint == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservbyport", a, b) : 0))
  1299. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1300. #   endif /* HAS_GETSERVBYPORT */
  1301. #endif /* HAS_GETSERVBYPORT_R */
  1302.  
  1303. #ifdef HAS_GETSERVENT_R
  1304. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1305. #   undef getservent
  1306. #   if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBWR
  1307. #       define getservent() ((PL_reentrant_retint = getservent_r(&PL_reentrant_buffer->_servent_struct, PL_reentrant_buffer->_servent_buffer, PL_reentrant_buffer->_servent_size, &PL_reentrant_buffer->_servent_ptr)) == 0 ? PL_reentrant_buffer->_servent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservent") : 0))
  1308. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1309. #   if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SBI
  1310. #       define getservent() ((PL_reentrant_retint = getservent_r(&PL_reentrant_buffer->_servent_struct, PL_reentrant_buffer->_servent_buffer, PL_reentrant_buffer->_servent_size)) == 0 ? &PL_reentrant_buffer->_servent_struct : ((PL_reentrant_retint == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservent") : 0))
  1311. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1312. #   if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_S_SBI
  1313. #       define getservent() (getservent_r(&PL_reentrant_buffer->_servent_struct, PL_reentrant_buffer->_servent_buffer, PL_reentrant_buffer->_servent_size) ? &PL_reentrant_buffer->_servent_struct : ((errno == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservent") : 0))
  1314. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1315. #   if !defined(getservent) && GETSERVENT_R_PROTO == REENTRANT_PROTO_I_SD
  1316. #       define getservent() (REENTR_MEMZERO(&PL_reentrant_buffer->_servent_data, sizeof(PL_reentrant_buffer->_servent_data)),(PL_reentrant_retint = getservent_r(&PL_reentrant_buffer->_servent_struct, &PL_reentrant_buffer->_servent_data)) == 0 ? &PL_reentrant_buffer->_servent_struct : ((PL_reentrant_retint == ERANGE) ? (struct servent *) Perl_reentrant_retry("getservent") : 0))
  1317. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1318. #   endif /* HAS_GETSERVENT */
  1319. #endif /* HAS_GETSERVENT_R */
  1320.  
  1321. #ifdef HAS_GETSPNAM_R
  1322. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1323. #   undef getspnam
  1324. #   if !defined(getspnam) && GETSPNAM_R_PROTO == REENTRANT_PROTO_I_CSBWR
  1325. #       define getspnam(a) ((PL_reentrant_retint = getspnam_r(a, &PL_reentrant_buffer->_spent_struct, PL_reentrant_buffer->_spent_buffer, PL_reentrant_buffer->_spent_size, &PL_reentrant_buffer->_spent_ptr)) == 0 ? PL_reentrant_buffer->_spent_ptr : ((PL_reentrant_retint == ERANGE) ? (struct spwd *) Perl_reentrant_retry("getspnam", a) : 0))
  1326. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1327. #   if !defined(getspnam) && GETSPNAM_R_PROTO == REENTRANT_PROTO_S_CSBI
  1328. #       define getspnam(a) (getspnam_r(a, &PL_reentrant_buffer->_spent_struct, PL_reentrant_buffer->_spent_buffer, PL_reentrant_buffer->_spent_size) ? &PL_reentrant_buffer->_spent_struct : ((errno == ERANGE) ? (struct spwd *) Perl_reentrant_retry("getspnam", a) : 0))
  1329. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1330. #   endif /* HAS_GETSPNAM */
  1331. #endif /* HAS_GETSPNAM_R */
  1332.  
  1333. #ifdef HAS_GMTIME_R
  1334. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1335. #   undef gmtime
  1336. #   if !defined(gmtime) && GMTIME_R_PROTO == REENTRANT_PROTO_S_TS
  1337. #       define gmtime(a) (gmtime_r(a, &PL_reentrant_buffer->_gmtime_struct) ? &PL_reentrant_buffer->_gmtime_struct : 0)
  1338. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1339. #   if !defined(gmtime) && GMTIME_R_PROTO == REENTRANT_PROTO_I_TS
  1340. #       define gmtime(a) (gmtime_r(a, &PL_reentrant_buffer->_gmtime_struct) == 0 ? &PL_reentrant_buffer->_gmtime_struct : 0)
  1341. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1342. #   endif /* HAS_GMTIME */
  1343. #endif /* HAS_GMTIME_R */
  1344.  
  1345. #ifdef HAS_LOCALTIME_R
  1346. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1347. #   undef localtime
  1348. #   if !defined(localtime) && LOCALTIME_R_PROTO == REENTRANT_PROTO_S_TS
  1349. #       define localtime(a) (L_R_TZSET localtime_r(a, &PL_reentrant_buffer->_localtime_struct) ? &PL_reentrant_buffer->_localtime_struct : 0)
  1350. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1351. #   if !defined(localtime) && LOCALTIME_R_PROTO == REENTRANT_PROTO_I_TS
  1352. #       define localtime(a) (L_R_TZSET localtime_r(a, &PL_reentrant_buffer->_localtime_struct) == 0 ? &PL_reentrant_buffer->_localtime_struct : 0)
  1353. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1354. #   endif /* HAS_LOCALTIME */
  1355. #endif /* HAS_LOCALTIME_R */
  1356.  
  1357. #ifdef HAS_RANDOM_R
  1358. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1359. #   undef random
  1360. #   if !defined(random) && RANDOM_R_PROTO == REENTRANT_PROTO_I_iS
  1361. #       define random() (random_r(&PL_reentrant_buffer->_random_retval, &PL_reentrant_buffer->_random_struct) == 0 ? PL_reentrant_buffer->_random_retval : 0)
  1362. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1363. #   if !defined(random) && RANDOM_R_PROTO == REENTRANT_PROTO_I_lS
  1364. #       define random() (random_r(&PL_reentrant_buffer->_random_retval, &PL_reentrant_buffer->_random_struct) == 0 ? PL_reentrant_buffer->_random_retval : 0)
  1365. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1366. #   if !defined(random) && RANDOM_R_PROTO == REENTRANT_PROTO_I_St
  1367. #       define random() (random_r(&PL_reentrant_buffer->_random_struct, &PL_reentrant_buffer->_random_retval) == 0 ? PL_reentrant_buffer->_random_retval : 0)
  1368. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1369. #   endif /* HAS_RANDOM */
  1370. #endif /* HAS_RANDOM_R */
  1371.  
  1372. #ifdef HAS_READDIR_R
  1373. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1374. #   undef readdir
  1375. #   if !defined(readdir) && READDIR_R_PROTO == REENTRANT_PROTO_I_TSR
  1376. #       define readdir(a) (readdir_r(a, PL_reentrant_buffer->_readdir_struct, &PL_reentrant_buffer->_readdir_ptr) == 0 ? PL_reentrant_buffer->_readdir_ptr : 0)
  1377. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1378. #   if !defined(readdir) && READDIR_R_PROTO == REENTRANT_PROTO_I_TS
  1379. #       define readdir(a) (readdir_r(a, PL_reentrant_buffer->_readdir_struct) == 0 ? PL_reentrant_buffer->_readdir_struct : 0)
  1380. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1381. #   endif /* HAS_READDIR */
  1382. #endif /* HAS_READDIR_R */
  1383.  
  1384. #ifdef HAS_READDIR64_R
  1385. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1386. #   undef readdir64
  1387. #   if !defined(readdir64) && READDIR64_R_PROTO == REENTRANT_PROTO_I_TSR
  1388. #       define readdir64(a) (readdir64_r(a, PL_reentrant_buffer->_readdir64_struct, &PL_reentrant_buffer->_readdir64_ptr) == 0 ? PL_reentrant_buffer->_readdir64_ptr : 0)
  1389. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1390. #   if !defined(readdir64) && READDIR64_R_PROTO == REENTRANT_PROTO_I_TS
  1391. #       define readdir64(a) (readdir64_r(a, PL_reentrant_buffer->_readdir64_struct) == 0 ? PL_reentrant_buffer->_readdir64_struct : 0)
  1392. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1393. #   endif /* HAS_READDIR64 */
  1394. #endif /* HAS_READDIR64_R */
  1395.  
  1396. #ifdef HAS_SETGRENT_R
  1397. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1398. #   undef setgrent
  1399. #   if !defined(setgrent) && SETGRENT_R_PROTO == REENTRANT_PROTO_I_H
  1400. #       define setgrent() (setgrent_r(&PL_reentrant_buffer->_grent_fptr) == 0 ? 1 : 0)
  1401. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1402. #   if !defined(setgrent) && SETGRENT_R_PROTO == REENTRANT_PROTO_V_H
  1403. #       define setgrent() setgrent_r(&PL_reentrant_buffer->_grent_fptr)
  1404. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1405. #   endif /* HAS_SETGRENT */
  1406. #endif /* HAS_SETGRENT_R */
  1407.  
  1408. #ifdef HAS_SETHOSTENT_R
  1409. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1410. #   undef sethostent
  1411. #   if !defined(sethostent) && SETHOSTENT_R_PROTO == REENTRANT_PROTO_I_ID
  1412. #       define sethostent(a) (sethostent_r(a, &PL_reentrant_buffer->_hostent_data) == 0 ? 1 : 0)
  1413. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1414. #   if !defined(sethostent) && SETHOSTENT_R_PROTO == REENTRANT_PROTO_V_ID
  1415. #       define sethostent(a) sethostent_r(a, &PL_reentrant_buffer->_hostent_data)
  1416. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1417. #   endif /* HAS_SETHOSTENT */
  1418. #endif /* HAS_SETHOSTENT_R */
  1419.  
  1420. #ifdef HAS_SETLOCALE_R
  1421. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1422. #   undef setlocale
  1423. #   if !defined(setlocale) && SETLOCALE_R_PROTO == REENTRANT_PROTO_I_ICBI
  1424. #       define setlocale(a, b) (setlocale_r(a, b, PL_reentrant_buffer->_setlocale_buffer, PL_reentrant_buffer->_setlocale_size) == 0 ? PL_reentrant_buffer->_setlocale_buffer : 0)
  1425. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1426. #   endif /* HAS_SETLOCALE */
  1427. #endif /* HAS_SETLOCALE_R */
  1428.  
  1429. #ifdef HAS_SETNETENT_R
  1430. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1431. #   undef setnetent
  1432. #   if !defined(setnetent) && SETNETENT_R_PROTO == REENTRANT_PROTO_I_ID
  1433. #       define setnetent(a) (setnetent_r(a, &PL_reentrant_buffer->_netent_data) == 0 ? 1 : 0)
  1434. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1435. #   if !defined(setnetent) && SETNETENT_R_PROTO == REENTRANT_PROTO_V_ID
  1436. #       define setnetent(a) setnetent_r(a, &PL_reentrant_buffer->_netent_data)
  1437. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1438. #   endif /* HAS_SETNETENT */
  1439. #endif /* HAS_SETNETENT_R */
  1440.  
  1441. #ifdef HAS_SETPROTOENT_R
  1442. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1443. #   undef setprotoent
  1444. #   if !defined(setprotoent) && SETPROTOENT_R_PROTO == REENTRANT_PROTO_I_ID
  1445. #       define setprotoent(a) (setprotoent_r(a, &PL_reentrant_buffer->_protoent_data) == 0 ? 1 : 0)
  1446. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1447. #   if !defined(setprotoent) && SETPROTOENT_R_PROTO == REENTRANT_PROTO_V_ID
  1448. #       define setprotoent(a) setprotoent_r(a, &PL_reentrant_buffer->_protoent_data)
  1449. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1450. #   endif /* HAS_SETPROTOENT */
  1451. #endif /* HAS_SETPROTOENT_R */
  1452.  
  1453. #ifdef HAS_SETPWENT_R
  1454. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1455. #   undef setpwent
  1456. #   if !defined(setpwent) && SETPWENT_R_PROTO == REENTRANT_PROTO_I_H
  1457. #       define setpwent() (setpwent_r(&PL_reentrant_buffer->_pwent_fptr) == 0 ? 1 : 0)
  1458. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1459. #   if !defined(setpwent) && SETPWENT_R_PROTO == REENTRANT_PROTO_V_H
  1460. #       define setpwent() setpwent_r(&PL_reentrant_buffer->_pwent_fptr)
  1461. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1462. #   endif /* HAS_SETPWENT */
  1463. #endif /* HAS_SETPWENT_R */
  1464.  
  1465. #ifdef HAS_SETSERVENT_R
  1466. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1467. #   undef setservent
  1468. #   if !defined(setservent) && SETSERVENT_R_PROTO == REENTRANT_PROTO_I_ID
  1469. #       define setservent(a) (setservent_r(a, &PL_reentrant_buffer->_servent_data) == 0 ? 1 : 0)
  1470. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1471. #   if !defined(setservent) && SETSERVENT_R_PROTO == REENTRANT_PROTO_V_ID
  1472. #       define setservent(a) setservent_r(a, &PL_reentrant_buffer->_servent_data)
  1473. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1474. #   endif /* HAS_SETSERVENT */
  1475. #endif /* HAS_SETSERVENT_R */
  1476.  
  1477. #ifdef HAS_SRAND48_R
  1478. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1479. #   undef srand48
  1480. #   if !defined(srand48) && SRAND48_R_PROTO == REENTRANT_PROTO_I_LS
  1481. #       define srand48(a) (srand48_r(a, &PL_reentrant_buffer->_drand48_struct) == 0 ? &PL_reentrant_buffer->_drand48_struct : 0)
  1482. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1483. #   endif /* HAS_SRAND48 */
  1484. #endif /* HAS_SRAND48_R */
  1485.  
  1486. #ifdef HAS_SRANDOM_R
  1487. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1488. #   undef srandom
  1489. #   if !defined(srandom) && SRANDOM_R_PROTO == REENTRANT_PROTO_I_TS
  1490. #       define srandom(a) (srandom_r(a, &PL_reentrant_buffer->_srandom_struct) == 0 ? &PL_reentrant_buffer->_srandom_struct : 0)
  1491. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1492. #   endif /* HAS_SRANDOM */
  1493. #endif /* HAS_SRANDOM_R */
  1494.  
  1495. #ifdef HAS_STRERROR_R
  1496. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1497. #   undef strerror
  1498. #   if !defined(strerror) && STRERROR_R_PROTO == REENTRANT_PROTO_I_IBW
  1499. #       define strerror(a) (strerror_r(a, PL_reentrant_buffer->_strerror_buffer, PL_reentrant_buffer->_strerror_size) == 0 ? PL_reentrant_buffer->_strerror_buffer : 0)
  1500. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1501. #   if !defined(strerror) && STRERROR_R_PROTO == REENTRANT_PROTO_I_IBI
  1502. #       define strerror(a) (strerror_r(a, PL_reentrant_buffer->_strerror_buffer, PL_reentrant_buffer->_strerror_size) == 0 ? PL_reentrant_buffer->_strerror_buffer : 0)
  1503. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1504. #   if !defined(strerror) && STRERROR_R_PROTO == REENTRANT_PROTO_B_IBW
  1505. #       define strerror(a) strerror_r(a, PL_reentrant_buffer->_strerror_buffer, PL_reentrant_buffer->_strerror_size)
  1506. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1507. #   endif /* HAS_STRERROR */
  1508. #endif /* HAS_STRERROR_R */
  1509.  
  1510. #ifdef HAS_TMPNAM_R
  1511. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1512. #   undef tmpnam
  1513. #   if !defined(tmpnam) && TMPNAM_R_PROTO == REENTRANT_PROTO_B_B
  1514. #       define tmpnam(a) tmpnam_r(a)
  1515. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1516. #   endif /* HAS_TMPNAM */
  1517. #endif /* HAS_TMPNAM_R */
  1518.  
  1519. #ifdef HAS_TTYNAME_R
  1520. #  if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1)
  1521. #   undef ttyname
  1522. #   if !defined(ttyname) && TTYNAME_R_PROTO == REENTRANT_PROTO_I_IBW
  1523. #       define ttyname(a) (ttyname_r(a, PL_reentrant_buffer->_ttyname_buffer, PL_reentrant_buffer->_ttyname_size) == 0 ? PL_reentrant_buffer->_ttyname_buffer : 0)
  1524. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1525. #   if !defined(ttyname) && TTYNAME_R_PROTO == REENTRANT_PROTO_I_IBI
  1526. #       define ttyname(a) (ttyname_r(a, PL_reentrant_buffer->_ttyname_buffer, PL_reentrant_buffer->_ttyname_size) == 0 ? PL_reentrant_buffer->_ttyname_buffer : 0)
  1527. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1528. #   if !defined(ttyname) && TTYNAME_R_PROTO == REENTRANT_PROTO_B_IBI
  1529. #       define ttyname(a) ttyname_r(a, PL_reentrant_buffer->_ttyname_buffer, PL_reentrant_buffer->_ttyname_size)
  1530. #  endif /* if defined(PERL_REENTR_API) && (PERL_REENTR_API+0 == 1) */
  1531. #   endif /* HAS_TTYNAME */
  1532. #endif /* HAS_TTYNAME_R */
  1533.  
  1534.  
  1535.  
  1536. #endif /* USE_REENTRANT_API */
  1537.  
  1538. #endif
  1539.  
  1540. /* ex: set ro: */
  1541.