#define REENTRANT_PROTO_B_B 1
#define REENTRANT_PROTO_B_BI 2
#define REENTRANT_PROTO_B_BW 3
-#define REENTRANT_PROTO_B_CCS 4
-#define REENTRANT_PROTO_B_IBI 5
-#define REENTRANT_PROTO_B_IBW 6
-#define REENTRANT_PROTO_B_SB 7
-#define REENTRANT_PROTO_B_SBI 8
-#define REENTRANT_PROTO_I_BI 9
-#define REENTRANT_PROTO_I_BW 10
-#define REENTRANT_PROTO_I_CCSBWR 11
-#define REENTRANT_PROTO_I_CCSD 12
-#define REENTRANT_PROTO_I_CII 13
-#define REENTRANT_PROTO_I_CIISD 14
-#define REENTRANT_PROTO_I_CSBI 15
-#define REENTRANT_PROTO_I_CSBIR 16
-#define REENTRANT_PROTO_I_CSBWR 17
-#define REENTRANT_PROTO_I_CSBWRE 18
-#define REENTRANT_PROTO_I_CSD 19
-#define REENTRANT_PROTO_I_CWISBWRE 20
-#define REENTRANT_PROTO_I_CWISD 21
-#define REENTRANT_PROTO_I_H 22
-#define REENTRANT_PROTO_I_IBI 23
-#define REENTRANT_PROTO_I_IBW 24
-#define REENTRANT_PROTO_I_ICBI 25
-#define REENTRANT_PROTO_I_ICSBWR 26
-#define REENTRANT_PROTO_I_ICSD 27
-#define REENTRANT_PROTO_I_ID 28
-#define REENTRANT_PROTO_I_IISD 29
-#define REENTRANT_PROTO_I_ISBWR 30
-#define REENTRANT_PROTO_I_ISD 31
-#define REENTRANT_PROTO_I_LISBI 32
-#define REENTRANT_PROTO_I_LISD 33
-#define REENTRANT_PROTO_I_LS 34
-#define REENTRANT_PROTO_I_S 35
-#define REENTRANT_PROTO_I_SB 36
-#define REENTRANT_PROTO_I_SBI 37
-#define REENTRANT_PROTO_I_SBIE 38
-#define REENTRANT_PROTO_I_SBIH 39
-#define REENTRANT_PROTO_I_SBIR 40
-#define REENTRANT_PROTO_I_SBWR 41
-#define REENTRANT_PROTO_I_SBWRE 42
-#define REENTRANT_PROTO_I_SD 43
-#define REENTRANT_PROTO_I_ST 44
-#define REENTRANT_PROTO_I_TISD 45
-#define REENTRANT_PROTO_I_TS 46
-#define REENTRANT_PROTO_I_TSBI 47
-#define REENTRANT_PROTO_I_TSBIR 48
-#define REENTRANT_PROTO_I_TSBWR 49
-#define REENTRANT_PROTO_I_TSR 50
-#define REENTRANT_PROTO_I_UISBWRE 51
-#define REENTRANT_PROTO_S_CBI 52
-#define REENTRANT_PROTO_S_CCSBI 53
-#define REENTRANT_PROTO_S_CIISBIE 54
-#define REENTRANT_PROTO_S_CSBI 55
-#define REENTRANT_PROTO_S_CSBIE 56
-#define REENTRANT_PROTO_S_CWISBIE 57
-#define REENTRANT_PROTO_S_CWISBWIE 58
-#define REENTRANT_PROTO_S_ICSBI 59
-#define REENTRANT_PROTO_S_ISBI 60
-#define REENTRANT_PROTO_S_LISBI 61
-#define REENTRANT_PROTO_S_SBI 62
-#define REENTRANT_PROTO_S_SBIE 63
-#define REENTRANT_PROTO_S_SBW 64
-#define REENTRANT_PROTO_S_TISBI 65
-#define REENTRANT_PROTO_S_TS 66
-#define REENTRANT_PROTO_S_TSBI 67
-#define REENTRANT_PROTO_S_TSBIE 68
-#define REENTRANT_PROTO_S_TWISBIE 69
-#define REENTRANT_PROTO_V_H 70
-#define REENTRANT_PROTO_V_ID 71
-#define REENTRANT_PROTO_V_S 72
+#define REENTRANT_PROTO_B_CCD 4
+#define REENTRANT_PROTO_B_CCS 5
+#define REENTRANT_PROTO_B_IBI 6
+#define REENTRANT_PROTO_B_IBW 7
+#define REENTRANT_PROTO_B_SB 8
+#define REENTRANT_PROTO_B_SBI 9
+#define REENTRANT_PROTO_I_BI 10
+#define REENTRANT_PROTO_I_BW 11
+#define REENTRANT_PROTO_I_CCSBWR 12
+#define REENTRANT_PROTO_I_CCSD 13
+#define REENTRANT_PROTO_I_CII 14
+#define REENTRANT_PROTO_I_CIISD 15
+#define REENTRANT_PROTO_I_CSBI 16
+#define REENTRANT_PROTO_I_CSBIR 17
+#define REENTRANT_PROTO_I_CSBWR 18
+#define REENTRANT_PROTO_I_CSBWRE 19
+#define REENTRANT_PROTO_I_CSD 20
+#define REENTRANT_PROTO_I_CWISBWRE 21
+#define REENTRANT_PROTO_I_CWISD 22
+#define REENTRANT_PROTO_I_D 23
+#define REENTRANT_PROTO_I_H 24
+#define REENTRANT_PROTO_I_IBI 25
+#define REENTRANT_PROTO_I_IBW 26
+#define REENTRANT_PROTO_I_ICBI 27
+#define REENTRANT_PROTO_I_ICSBWR 28
+#define REENTRANT_PROTO_I_ICSD 29
+#define REENTRANT_PROTO_I_ID 30
+#define REENTRANT_PROTO_I_IISD 31
+#define REENTRANT_PROTO_I_ISBWR 32
+#define REENTRANT_PROTO_I_ISD 33
+#define REENTRANT_PROTO_I_LISBI 34
+#define REENTRANT_PROTO_I_LISD 35
+#define REENTRANT_PROTO_I_LS 36
+#define REENTRANT_PROTO_I_SB 37
+#define REENTRANT_PROTO_I_SBI 38
+#define REENTRANT_PROTO_I_SBIE 39
+#define REENTRANT_PROTO_I_SBIH 40
+#define REENTRANT_PROTO_I_SBIR 41
+#define REENTRANT_PROTO_I_SBWR 42
+#define REENTRANT_PROTO_I_SBWRE 43
+#define REENTRANT_PROTO_I_SD 44
+#define REENTRANT_PROTO_I_ST 45
+#define REENTRANT_PROTO_I_TISD 46
+#define REENTRANT_PROTO_I_TS 47
+#define REENTRANT_PROTO_I_TSBI 48
+#define REENTRANT_PROTO_I_TSBIR 49
+#define REENTRANT_PROTO_I_TSBWR 50
+#define REENTRANT_PROTO_I_TSR 51
+#define REENTRANT_PROTO_I_UISBWRE 52
+#define REENTRANT_PROTO_S_CBI 53
+#define REENTRANT_PROTO_S_CCSBI 54
+#define REENTRANT_PROTO_S_CIISBIE 55
+#define REENTRANT_PROTO_S_CSBI 56
+#define REENTRANT_PROTO_S_CSBIE 57
+#define REENTRANT_PROTO_S_CWISBIE 58
+#define REENTRANT_PROTO_S_CWISBWIE 59
+#define REENTRANT_PROTO_S_ICSBI 60
+#define REENTRANT_PROTO_S_ISBI 61
+#define REENTRANT_PROTO_S_LISBI 62
+#define REENTRANT_PROTO_S_SBI 63
+#define REENTRANT_PROTO_S_SBIE 64
+#define REENTRANT_PROTO_S_SBW 65
+#define REENTRANT_PROTO_S_TISBI 66
+#define REENTRANT_PROTO_S_TS 67
+#define REENTRANT_PROTO_S_TSBI 68
+#define REENTRANT_PROTO_S_TSBIE 69
+#define REENTRANT_PROTO_S_TWISBIE 70
+#define REENTRANT_PROTO_V_D 71
+#define REENTRANT_PROTO_V_H 72
+#define REENTRANT_PROTO_V_ID 73
/* Defines for indicating which special features are supported. */
size_t _asctime_size;
#endif /* HAS_ASCTIME_R */
#ifdef HAS_CRYPT_R
+#if CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD
+ CRYPTD* _crypt_data;
+#else
struct crypt_data _crypt_struct;
+#endif
#endif /* HAS_CRYPT_R */
#ifdef HAS_CTIME_R
char* _ctime_buffer;
#ifdef HAS_GETHOSTBYNAME_R
struct hostent _gethostent_struct;
# if GETHOSTBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
- struct hostent_data* _gethostent_data;
+ struct hostent_data _gethostent_data;
# else
char* _gethostent_buffer;
size_t _gethostent_size;
#ifdef HAS_GETNETBYNAME_R
struct netent _getnetent_struct;
# if GETNETBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
- struct netent_data* _getnetent_data;
+ struct netent_data _getnetent_data;
# else
char* _getnetent_buffer;
size_t _getnetent_size;
#ifdef HAS_GETPROTOBYNAME_R
struct protoent _getprotoent_struct;
# if GETPROTOBYNAME_R_PROTO == REENTRANT_PROTO_I_CSD
- struct protoent_data* _getprotoent_data;
+ struct protoent_data _getprotoent_data;
# else
char* _getprotoent_buffer;
size_t _getprotoent_size;
#ifdef HAS_GETSERVBYNAME_R
struct servent _getservent_struct;
# if GETSERVBYNAME_R_PROTO == REENTRANT_PROTO_I_CCSD
- struct servent_data* _getservent_data;
+ struct servent_data _getservent_data;
# else
char* _getservent_buffer;
size_t _getservent_size;
# if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCS
# define crypt(a, b) crypt_r(a, b, &PL_reentrant_buffer->_crypt_struct)
# endif
+# if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD
+# define crypt(a, b) crypt_r(a, b, &PL_reentrant_buffer->_crypt_data)
+# endif
#endif /* HAS_CRYPT_R */
#ifdef HAS_CTERMID_R
#ifdef HAS_ENDHOSTENT_R
# undef endhostent
-# if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_I_S
-# define endhostent() (((errno = endhostent_r(&PL_reentrant_buffer->_gethostent_struct))) == 0 ? &PL_reentrant_buffer->_gethostent_struct : 0)
+# if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_I_D
+# define endhostent() (((errno = endhostent_r(&PL_reentrant_buffer->_gethostent_data))) == 0 ? 1 : 0)
# endif
-# if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_V_S
-# define endhostent() endhostent_r(&PL_reentrant_buffer->_gethostent_struct)
+# if !defined(endhostent) && ENDHOSTENT_R_PROTO == REENTRANT_PROTO_V_D
+# define endhostent() endhostent_r(&PL_reentrant_buffer->_gethostent_data)
# endif
#endif /* HAS_ENDHOSTENT_R */
#ifdef HAS_ENDNETENT_R
# undef endnetent
-# if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_I_S
-# define endnetent() (((errno = endnetent_r(&PL_reentrant_buffer->_getnetent_struct))) == 0 ? &PL_reentrant_buffer->_getnetent_struct : 0)
+# if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_I_D
+# define endnetent() (((errno = endnetent_r(&PL_reentrant_buffer->_getnetent_data))) == 0 ? 1 : 0)
# endif
-# if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_V_S
-# define endnetent() endnetent_r(&PL_reentrant_buffer->_getnetent_struct)
+# if !defined(endnetent) && ENDNETENT_R_PROTO == REENTRANT_PROTO_V_D
+# define endnetent() endnetent_r(&PL_reentrant_buffer->_getnetent_data)
# endif
#endif /* HAS_ENDNETENT_R */
#ifdef HAS_ENDPROTOENT_R
# undef endprotoent
-# if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_I_S
-# define endprotoent() (((errno = endprotoent_r(&PL_reentrant_buffer->_getprotoent_struct))) == 0 ? &PL_reentrant_buffer->_getprotoent_struct : 0)
+# if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_I_D
+# define endprotoent() (((errno = endprotoent_r(&PL_reentrant_buffer->_getprotoent_data))) == 0 ? 1 : 0)
# endif
-# if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_V_S
-# define endprotoent() endprotoent_r(&PL_reentrant_buffer->_getprotoent_struct)
+# if !defined(endprotoent) && ENDPROTOENT_R_PROTO == REENTRANT_PROTO_V_D
+# define endprotoent() endprotoent_r(&PL_reentrant_buffer->_getprotoent_data)
# endif
#endif /* HAS_ENDPROTOENT_R */
#ifdef HAS_ENDSERVENT_R
# undef endservent
-# if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_I_S
-# define endservent() (((errno = endservent_r(&PL_reentrant_buffer->_getservent_struct))) == 0 ? &PL_reentrant_buffer->_getservent_struct : 0)
+# if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_I_D
+# define endservent() (((errno = endservent_r(&PL_reentrant_buffer->_getservent_data))) == 0 ? 1 : 0)
# endif
-# if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_V_S
-# define endservent() endservent_r(&PL_reentrant_buffer->_getservent_struct)
+# if !defined(endservent) && ENDSERVENT_R_PROTO == REENTRANT_PROTO_V_D
+# define endservent() endservent_r(&PL_reentrant_buffer->_getservent_data)
# endif
#endif /* HAS_ENDSERVENT_R */