source: trunk/essentials/dev-lang/perl/reentr.h@ 3212

Last change on this file since 3212 was 3181, checked in by bird, 19 years ago

perl 5.8.8

File size: 25.5 KB
Line 
1/* -*- buffer-read-only: t -*-
2 *
3 * reentr.h
4 *
5 * Copyright (C) 2002, 2003, 2005 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#ifdef USE_REENTRANT_API
18
19#ifdef PERL_CORE
20# define PL_REENTRANT_RETINT PL_reentrant_retint
21#endif
22
23/* Deprecations: some platforms have the said reentrant interfaces
24 * but they are declared obsolete and are not to be used. Often this
25 * means that the platform has threadsafed the interfaces (hopefully).
26 * All this is OS version dependent, so we are of course fooling ourselves.
27 * If you know of more deprecations on some platforms, please add your own. */
28
29#ifdef __hpux
30# undef HAS_CRYPT_R
31# undef HAS_DRAND48_R
32# undef HAS_ENDGRENT_R
33# undef HAS_ENDPWENT_R
34# undef HAS_GETGRENT_R
35# undef HAS_GETPWENT_R
36# undef HAS_SETLOCALE_R
37# undef HAS_SRAND48_R
38# undef HAS_STRERROR_R
39# define NETDB_R_OBSOLETE
40#endif
41
42#if defined(__osf__) && defined(__alpha) /* Tru64 aka Digital UNIX */
43# undef HAS_CRYPT_R
44# undef HAS_STRERROR_R
45# define NETDB_R_OBSOLETE
46#endif
47
48#ifdef NETDB_R_OBSOLETE
49# undef HAS_ENDHOSTENT_R
50# undef HAS_ENDNETENT_R
51# undef HAS_ENDPROTOENT_R
52# undef HAS_ENDSERVENT_R
53# undef HAS_GETHOSTBYADDR_R
54# undef HAS_GETHOSTBYNAME_R
55# undef HAS_GETHOSTENT_R
56# undef HAS_GETNETBYADDR_R
57# undef HAS_GETNETBYNAME_R
58# undef HAS_GETNETENT_R
59# undef HAS_GETPROTOBYNAME_R
60# undef HAS_GETPROTOBYNUMBER_R
61# undef HAS_GETPROTOENT_R
62# undef HAS_GETSERVBYNAME_R
63# undef HAS_GETSERVBYPORT_R
64# undef HAS_GETSERVENT_R
65# undef HAS_SETHOSTENT_R
66# undef HAS_SETNETENT_R
67# undef HAS_SETPROTOENT_R
68# undef HAS_SETSERVENT_R
69#endif
70
71#ifdef I_PWD
72# include <pwd.h>
73#endif
74#ifdef I_GRP
75# include <grp.h>
76#endif
77#ifdef I_NETDB
78# include <netdb.h>
79#endif
80#ifdef I_STDLIB
81# include <stdlib.h> /* drand48_data */
82#endif
83#ifdef I_CRYPT
84# ifdef I_CRYPT
85# include <crypt.h>
86# endif
87#endif
88#ifdef HAS_GETSPNAM_R
89# ifdef I_SHADOW
90# include <shadow.h>
91# endif
92#endif
93
94#define REENTRANT_PROTO_B_B 1
95#define REENTRANT_PROTO_B_BI 2
96#define REENTRANT_PROTO_B_BW 3
97#define REENTRANT_PROTO_B_CCD 4
98#define REENTRANT_PROTO_B_CCS 5
99#define REENTRANT_PROTO_B_IBI 6
100#define REENTRANT_PROTO_B_IBW 7
101#define REENTRANT_PROTO_B_SB 8
102#define REENTRANT_PROTO_B_SBI 9
103#define REENTRANT_PROTO_I_BI 10
104#define REENTRANT_PROTO_I_BW 11