Commit | Line | Data |
---|---|---|
396e9e6f | 1 | #include "EXTERN.h" |
2 | #include "perl.h" | |
a123eb89 | 3 | #include "./plan9/math.h" |
396e9e6f | 4 | |
a123eb89 R |
5 | #define _PLAN9_SOURCE |
6 | #include <u.h> | |
396e9e6f | 7 | |
a123eb89 | 8 | /** Function fpclassify(double) is required by sv.c, which was refactored in perl-5.24 era and uses other libraries to classify floating points. **/ |
396e9e6f | 9 | |
a123eb89 R |
10 | /* See /sys/src/lib/port/frexp.c */ |
11 | #define SHIFT 20 | |
12 | ||
13 | int fpclassify(double d) { | |
1604cfb0 MS |
14 | FPdbleword x; |
15 | ||
16 | /* order matters: only isNaN can operate on NaN */ | |
17 | if ( isNaN(d) ) | |
18 | return FP_NAN; | |
19 | else if ( isInf(d, 0) ) | |
20 | return FP_INFINITE; | |
21 | else if ( d == 0 ) | |
22 | return FP_ZERO; | |
23 | ||
24 | x.x = fabs(d); | |
25 | return (x.hi >> SHIFT) ? FP_NORMAL : FP_SUBNORMAL; | |
396e9e6f | 26 | } |
27 | ||
a123eb89 | 28 | /* Functions mentioned in /sys/include/ape/sys/socket.h but not implemented */ |
396e9e6f | 29 | |
30 | int recvmsg(int a, struct msghdr *b, int c) | |
31 | { | |
32 | croak("Function \"recvmsg\" not implemented in this version of perl."); | |
33 | return (int)NULL; | |
34 | } | |
35 | ||
36 | int sendmsg(int a, struct msghdr *b, int c) | |
37 | { | |
38 | croak("Function \"sendmsg\" not implemented in this version of perl."); | |
39 | return (int)NULL; | |
40 | } | |
41 | ||
42 | ||
a123eb89 | 43 | /* Functions mentioned in /sys/include/ape/sys/netdb.h but not implemented */ |
396e9e6f | 44 | struct netent *getnetbyname(const char *a) |
45 | { | |
46 | croak("Function \"getnetbyname\" not implemented in this version of perl."); | |
47 | return (struct netent *)NULL; | |
48 | } | |
49 | ||
50 | struct netent *getnetbyaddr(long a, int b) | |
51 | { | |
52 | croak("Function \"getnetbyaddr\" not implemented in this version of perl."); | |
53 | return (struct netent *)NULL; | |
54 | } | |
55 | ||
56 | struct netent *getnetent() | |
57 | { | |
58 | croak("Function \"getnetent\" not implemented in this version of perl."); | |
59 | return (struct netent *)NULL; | |
60 | } | |
61 | ||
62 | struct protoent *getprotobyname(const char *a) | |
63 | { | |
64 | croak("Function \"getprotobyname\" not implemented in this version of perl."); | |
65 | return (struct protoent *)NULL; | |
66 | } | |
67 | ||
68 | struct protoent *getprotobynumber(int a) | |
69 | { | |
70 | croak("Function \"getprotobynumber\" not implemented in this version of perl."); | |
71 | return (struct protoent *)NULL; | |
72 | } | |
73 | ||
74 | struct protoent *getprotoent() | |
75 | { | |
76 | croak("Function \"getprotoent\" not implemented in this version of perl."); | |
77 | return (struct protoent *)NULL; | |
78 | } | |
79 | ||
80 | struct servent *getservbyport(int a, const char *b) | |
81 | { | |
82 | croak("Function \"getservbyport\" not implemented in this version of perl."); | |
83 | return (struct servent *)NULL; | |
84 | } | |
85 | ||
86 | struct servent *getservent() | |
87 | { | |
88 | croak("Function \"getservent\" not implemented in this version of perl."); | |
89 | return (struct servent *)NULL; | |
90 | } | |
91 | ||
92 | void sethostent(int a) | |
93 | { | |
94 | croak("Function \"sethostent\" not implemented in this version of perl."); | |
95 | } | |
96 | ||
97 | void setnetent(int a) | |
98 | { | |
99 | croak("Function \"setnetent\" not implemented in this version of perl."); | |
100 | } | |
101 | ||
102 | void setprotoent(int a) | |
103 | { | |
104 | croak("Function \"setprotoent\" not implemented in this version of perl."); | |
105 | } | |
106 | ||
107 | void setservent(int a) | |
108 | { | |
b21ef1bc | 109 | croak("Function \"setservent\" not implemented in this version of perl."); |
396e9e6f | 110 | } |
111 | ||
112 | void endnetent() | |
113 | { | |
114 | croak("Function \"endnetent\" not implemented in this version of perl."); | |
115 | } | |
116 | ||
117 | void endprotoent() | |
118 | { | |
119 | croak("Function \"endprotoent\" not implemented in this version of perl."); | |
120 | } | |
121 | ||
122 | void endservent() | |
123 | { | |
124 | croak("Function \"endservent\" not implemented in this version of perl."); | |
125 | } |