This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Revert "postpone perl_parse() exit(0) bugfix"
[perl5.git] / plan9 / plan9.c
CommitLineData
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
13int 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
30int 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
36int 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 44struct netent *getnetbyname(const char *a)
45{
46 croak("Function \"getnetbyname\" not implemented in this version of perl.");
47 return (struct netent *)NULL;
48}
49
50struct 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
56struct netent *getnetent()
57{
58 croak("Function \"getnetent\" not implemented in this version of perl.");
59 return (struct netent *)NULL;
60}
61
62struct protoent *getprotobyname(const char *a)
63{
64 croak("Function \"getprotobyname\" not implemented in this version of perl.");
65 return (struct protoent *)NULL;
66}
67
68struct protoent *getprotobynumber(int a)
69{
70 croak("Function \"getprotobynumber\" not implemented in this version of perl.");
71 return (struct protoent *)NULL;
72}
73
74struct protoent *getprotoent()
75{
76 croak("Function \"getprotoent\" not implemented in this version of perl.");
77 return (struct protoent *)NULL;
78}
79
80struct 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
86struct servent *getservent()
87{
88 croak("Function \"getservent\" not implemented in this version of perl.");
89 return (struct servent *)NULL;
90}
91
92void sethostent(int a)
93{
94 croak("Function \"sethostent\" not implemented in this version of perl.");
95}
96
97void setnetent(int a)
98{
99 croak("Function \"setnetent\" not implemented in this version of perl.");
100}
101
102void setprotoent(int a)
103{
104 croak("Function \"setprotoent\" not implemented in this version of perl.");
105}
106
107void setservent(int a)
108{
b21ef1bc 109 croak("Function \"setservent\" not implemented in this version of perl.");
396e9e6f 110}
111
112void endnetent()
113{
114 croak("Function \"endnetent\" not implemented in this version of perl.");
115}
116
117void endprotoent()
118{
119 croak("Function \"endprotoent\" not implemented in this version of perl.");
120}
121
122void endservent()
123{
124 croak("Function \"endservent\" not implemented in this version of perl.");
125}