File Coverage

ext/POSIX/const-c.inc
Criterion Covered Total %
statement 22 23 95.7
branch n/a
condition n/a
subroutine n/a
total 22 23 95.7


line stmt bran cond sub time code
1           #define PERL_constant_NOTFOUND 1
2           #define PERL_constant_NOTDEF 2
3           #define PERL_constant_ISIV 3
4           #define PERL_constant_ISNO 4
5           #define PERL_constant_ISNV 5
6           #define PERL_constant_ISPV 6
7           #define PERL_constant_ISPVN 7
8           #define PERL_constant_ISSV 8
9           #define PERL_constant_ISUNDEF 9
10           #define PERL_constant_ISUV 10
11           #define PERL_constant_ISYES 11
12            
13           #ifndef NVTYPE
14           typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
15           #endif
16           #ifndef aTHX_
17           #define aTHX_ /* 5.6 or later define this for threading support. */
18           #endif
19           #ifndef pTHX_
20           #define pTHX_ /* 5.6 or later define this for threading support. */
21           #endif
22            
23           /* This allows slightly more efficient code on !USE_ITHREADS: */
24           #ifdef USE_ITHREADS
25           # define COP_FILE(c) CopFILE(c)
26           # define COP_FILE_F "s"
27           #else
28           # define COP_FILE(c) CopFILESV(c)
29           # define COP_FILE_F SVf
30           #endif
31            
32           static void
33 382536         constant_add_symbol(pTHX_ HV *hash, const char *name, I32 namelen, SV *value) {
34 382536         HE *he = (HE*) hv_common_key_len(hash, name, namelen, HV_FETCH_LVALUE, NULL,
35           0);
36           SV *sv;
37            
38 382536         if (!he) {
39 0         Perl_croak(aTHX_ "Couldn't add key '%s' to %%POSIX::",
40           name);
41           }
42 382536         sv = HeVAL(he);
43 762256         if (SvOK(sv) || SvTYPE(sv) == SVt_PVGV) {
44           /* Someone has been here before us - have to make a real sub. */
45 2816         newCONSTSUB(hash, name, value);
46           } else {
47 759440         SvUPGRADE(sv, SVt_RV);
48 379720         SvRV_set(sv, value);
49 379720         SvROK_on(sv);
50 379720         SvREADONLY_on(value);
51           }
52 382536         }
53            
54            
55            
56           #ifndef SYMBIAN
57            
58           /* Store a hash of all symbols missing from the package. To avoid trampling on
59           the package namespace (uninvited) put each package's hash in our namespace.
60           To avoid creating lots of typeblogs and symbol tables for sub-packages, put
61           each package's hash into one hash in our namespace. */
62            
63           static HV *
64 2634         get_missing_hash(pTHX) {
65 1446         HV *const parent
66           = get_hv("ExtUtils::Constant::ProxySubs::Missing", GVf_MULTI);
67           /* We could make a hash of hashes directly, but this would confuse anything
68           at Perl space that looks at us, and as we're visible in Perl space,
69           best to play nice. */
70 1446         SV *const *const ref
71           = hv_fetch(parent, "POSIX", 5, TRUE);
72           HV *new_hv;
73            
74 1446         if (!ref)
75           return NULL;
76            
77 1446         if (SvROK(*ref))
78 258         return (HV*) SvRV(*ref);
79            
80 1188         new_hv = newHV();
81 2376         SvUPGRADE(*ref, SVt_RV);
82 1188         SvRV_set(*ref, (SV *)new_hv);
83 1188         SvROK_on(*ref);
84 1188         return new_hv;
85           }
86            
87           #endif
88            
89           struct notfound_s {const char *name; I32 namelen;} ;
90            
91           static const struct notfound_s values_for_notfound[] =
92           {
93           #ifndef ARG_MAX
94           { "ARG_MAX", 7 },
95           #endif
96           #ifndef B0
97           { "B0", 2 },
98           #endif
99           #ifndef B110
100           { "B110", 4 },
101           #endif
102           #ifndef B1200
103           { "B1200", 5 },
104           #endif
105           #ifndef B134
106           { "B134", 4 },
107           #endif
108           #ifndef B150
109           { "B150", 4 },
110           #endif
111           #ifndef B1800
112           { "B1800", 5 },
113           #endif
114           #ifndef B19200
115           { "B19200", 6 },
116           #endif
117           #ifndef B200
118           { "B200", 4 },
119           #endif
120           #ifndef B2400
121           { "B2400", 5 },
122           #endif
123           #ifndef B300
124           { "B300", 4 },
125           #endif
126           #ifndef B38400
127           { "B38400", 6 },
128           #endif
129           #ifndef B4800
130           { "B4800", 5 },
131           #endif
132           #ifndef B50
133           { "B50", 3 },
134           #endif
135           #ifndef B600
136           { "B600", 4 },
137           #endif
138           #ifndef B75
139           { "B75", 3 },
140           #endif
141           #ifndef B9600
142           { "B9600", 5 },
143           #endif
144           #ifndef BRKINT
145           { "BRKINT", 6 },
146           #endif
147           #ifndef BUFSIZ
148           { "BUFSIZ", 6 },
149           #endif
150           #ifndef CHAR_BIT
151           { "CHAR_BIT", 8 },
152           #endif
153           #ifndef CHAR_MAX
154           { "CHAR_MAX", 8 },
155           #endif
156           #ifndef CHAR_MIN
157           { "CHAR_MIN", 8 },
158           #endif
159           #ifndef CHILD_MAX
160           { "CHILD_MAX", 9 },
161           #endif
162           #ifndef CLOCAL
163           { "CLOCAL", 6 },
164           #endif
165           #ifndef CLOCKS_PER_SEC
166           { "CLOCKS_PER_SEC", 14 },
167           #endif
168           #ifndef CREAD
169           { "CREAD", 5 },
170           #endif
171           #ifndef CS5
172           { "CS5", 3 },
173           #endif
174           #ifndef CS6
175           { "CS6", 3 },
176           #endif
177           #ifndef CS7
178           { "CS7", 3 },
179           #endif
180           #ifndef CS8
181           { "CS8", 3 },
182           #endif
183           #ifndef CSIZE
184           { "CSIZE", 5 },
185           #endif
186           #ifndef CSTOPB
187           { "CSTOPB", 6 },
188           #endif
189           #ifndef E2BIG
190           { "E2BIG", 5 },
191           #endif
192           #ifndef EACCES
193           { "EACCES", 6 },
194           #endif
195           #ifndef EADDRINUSE
196           { "EADDRINUSE", 10 },
197           #endif
198           #ifndef EADDRNOTAVAIL
199           { "EADDRNOTAVAIL", 13 },
200           #endif
201           #ifndef EAFNOSUPPORT
202           { "EAFNOSUPPORT", 12 },
203           #endif
204           #ifndef EAGAIN
205           { "EAGAIN", 6 },
206           #endif
207           #ifndef EALREADY
208           { "EALREADY", 8 },
209           #endif
210           #ifndef EBADF
211           { "EBADF", 5 },
212           #endif
213           #ifndef EBUSY
214           { "EBUSY", 5 },
215           #endif
216           #ifndef ECHILD
217           { "ECHILD", 6 },
218           #endif
219           #ifndef ECHO
220           { "ECHO", 4 },
221           #endif
222           #ifndef ECHOE
223           { "ECHOE", 5 },
224           #endif
225           #ifndef ECHOK
226           { "ECHOK", 5 },
227           #endif
228           #ifndef ECHONL
229           { "ECHONL", 6 },
230           #endif
231           #ifndef ECONNABORTED
232           { "ECONNABORTED", 12 },
233           #endif
234           #ifndef ECONNREFUSED
235           { "ECONNREFUSED", 12 },
236           #endif
237           #ifndef ECONNRESET
238           { "ECONNRESET", 10 },
239           #endif
240           #ifndef EDEADLK
241           { "EDEADLK", 7 },
242           #endif
243           #ifndef EDESTADDRREQ
244           { "EDESTADDRREQ", 12 },
245           #endif
246           #ifndef EDOM
247           { "EDOM", 4 },
248           #endif
249           #ifndef EDQUOT
250           { "EDQUOT", 6 },
251           #endif
252           #ifndef EEXIST
253           { "EEXIST", 6 },
254           #endif
255           #ifndef EFAULT
256           { "EFAULT", 6 },
257           #endif
258           #ifndef EFBIG
259           { "EFBIG", 5 },
260           #endif
261           #ifndef EHOSTDOWN
262           { "EHOSTDOWN", 9 },
263           #endif
264           #ifndef EHOSTUNREACH
265           { "EHOSTUNREACH", 12 },
266           #endif
267           #ifndef EINPROGRESS
268           { "EINPROGRESS", 11 },
269           #endif
270           #ifndef EINTR
271           { "EINTR", 5 },
272           #endif
273           #ifndef EINVAL
274           { "EINVAL", 6 },
275           #endif
276           #ifndef EIO
277           { "EIO", 3 },
278           #endif
279           #ifndef EISCONN
280           { "EISCONN", 7 },
281           #endif
282           #ifndef EISDIR
283           { "EISDIR", 6 },
284           #endif
285           #ifndef ELOOP
286           { "ELOOP", 5 },
287           #endif
288           #ifndef EMFILE
289           { "EMFILE", 6 },
290           #endif
291           #ifndef EMLINK
292           { "EMLINK", 6 },
293           #endif
294           #ifndef EMSGSIZE
295           { "EMSGSIZE", 8 },
296           #endif
297           #ifndef ENAMETOOLONG
298           { "ENAMETOOLONG", 12 },
299           #endif
300           #ifndef ENETDOWN
301           { "ENETDOWN", 8 },
302           #endif
303           #ifndef ENETRESET
304           { "ENETRESET", 9 },
305           #endif
306           #ifndef ENETUNREACH
307           { "ENETUNREACH", 11 },
308           #endif
309           #ifndef ENFILE
310           { "ENFILE", 6 },
311           #endif
312           #ifndef ENOBUFS
313           { "ENOBUFS", 7 },
314           #endif
315           #ifndef ENODEV
316           { "ENODEV", 6 },
317           #endif
318           #ifndef ENOENT
319           { "ENOENT", 6 },
320           #endif
321           #ifndef ENOEXEC
322           { "ENOEXEC", 7 },
323           #endif
324           #ifndef ENOLCK
325           { "ENOLCK", 6 },
326           #endif
327           #ifndef ENOMEM
328           { "ENOMEM", 6 },
329           #endif
330           #ifndef ENOPROTOOPT
331           { "ENOPROTOOPT", 11 },
332           #endif
333           #ifndef ENOSPC
334           { "ENOSPC", 6 },
335           #endif
336           #ifndef ENOSYS
337           { "ENOSYS", 6 },
338           #endif
339           #ifndef ENOTBLK
340           { "ENOTBLK", 7 },
341           #endif
342           #ifndef ENOTCONN
343           { "ENOTCONN", 8 },
344           #endif
345           #ifndef ENOTDIR
346           { "ENOTDIR", 7 },
347           #endif
348           #ifndef ENOTEMPTY
349           { "ENOTEMPTY", 9 },
350           #endif
351           #ifndef ENOTSOCK
352           { "ENOTSOCK", 8 },
353           #endif
354           #ifndef ENOTTY
355           { "ENOTTY", 6 },
356           #endif
357           #ifndef ENXIO
358           { "ENXIO", 5 },
359           #endif
360           #ifndef EOF
361           { "EOF", 3 },
362           #endif
363           #ifndef EOPNOTSUPP
364           { "EOPNOTSUPP", 10 },
365           #endif
366           #ifndef EPERM
367           { "EPERM", 5 },
368           #endif
369           #ifndef EPFNOSUPPORT
370           { "EPFNOSUPPORT", 12 },
371           #endif
372           #ifndef EPIPE
373           { "EPIPE", 5 },
374           #endif
375           #ifndef EPROCLIM
376           { "EPROCLIM", 8 },
377           #endif
378           #ifndef EPROTONOSUPPORT
379           { "EPROTONOSUPPORT", 15 },
380           #endif
381           #ifndef EPROTOTYPE
382           { "EPROTOTYPE", 10 },
383           #endif
384           #ifndef ERANGE
385           { "ERANGE", 6 },
386           #endif
387           #ifndef EREMOTE
388           { "EREMOTE", 7 },
389           #endif
390           #ifndef ERESTART
391           { "ERESTART", 8 },
392           #endif
393           #ifndef EROFS
394           { "EROFS", 5 },
395           #endif
396           #ifndef ESHUTDOWN
397           { "ESHUTDOWN", 9 },
398           #endif
399           #ifndef ESOCKTNOSUPPORT
400           { "ESOCKTNOSUPPORT", 15 },
401           #endif
402           #ifndef ESPIPE
403           { "ESPIPE", 6 },
404           #endif
405           #ifndef ESRCH
406           { "ESRCH", 5 },
407           #endif
408           #ifndef ESTALE
409           { "ESTALE", 6 },
410           #endif
411           #ifndef ETIMEDOUT
412           { "ETIMEDOUT", 9 },
413           #endif
414           #ifndef ETOOMANYREFS
415           { "ETOOMANYREFS", 12 },
416           #endif
417           #ifndef ETXTBSY
418           { "ETXTBSY", 7 },
419           #endif
420           #ifndef EUSERS
421           { "EUSERS", 6 },
422           #endif
423           #ifndef EWOULDBLOCK
424           { "EWOULDBLOCK", 11 },
425           #endif
426           #ifndef EXDEV
427           { "EXDEV", 5 },
428           #endif
429           #ifndef FILENAME_MAX
430           { "FILENAME_MAX", 12 },
431           #endif
432           #ifndef F_OK
433           { "F_OK", 4 },
434           #endif
435           #ifndef HUPCL
436           { "HUPCL", 5 },
437           #endif
438           #ifndef ICANON
439           { "ICANON", 6 },
440           #endif
441           #ifndef ICRNL
442           { "ICRNL", 5 },
443           #endif
444           #ifndef IEXTEN
445           { "IEXTEN", 6 },
446           #endif
447           #ifndef IGNBRK
448           { "IGNBRK", 6 },
449           #endif
450           #ifndef IGNCR
451           { "IGNCR", 5 },
452           #endif
453           #ifndef IGNPAR
454           { "IGNPAR", 6 },
455           #endif
456           #ifndef INLCR
457           { "INLCR", 5 },
458           #endif
459           #ifndef INPCK
460           { "INPCK", 5 },
461           #endif
462           #ifndef INT_MAX
463           { "INT_MAX", 7 },
464           #endif
465           #ifndef INT_MIN
466           { "INT_MIN", 7 },
467           #endif
468           #ifndef ISIG
469           { "ISIG", 4 },
470           #endif
471           #ifndef ISTRIP
472           { "ISTRIP", 6 },
473           #endif
474           #ifndef IXOFF
475           { "IXOFF", 5 },
476           #endif
477           #ifndef IXON
478           { "IXON", 4 },
479           #endif
480           #ifndef LC_ALL
481           { "LC_ALL", 6 },
482           #endif
483           #ifndef LC_COLLATE
484           { "LC_COLLATE", 10 },
485           #endif
486           #ifndef LC_CTYPE
487           { "LC_CTYPE", 8 },
488           #endif
489           #ifndef LC_MESSAGES
490           { "LC_MESSAGES", 11 },
491           #endif
492           #ifndef LC_MONETARY
493           { "LC_MONETARY", 11 },
494           #endif
495           #ifndef LC_NUMERIC
496           { "LC_NUMERIC", 10 },
497           #endif
498           #ifndef LC_TIME
499           { "LC_TIME", 7 },
500           #endif
501           #ifndef LINK_MAX
502           { "LINK_MAX", 8 },
503           #endif
504           #ifndef LONG_MAX
505           { "LONG_MAX", 8 },
506           #endif
507           #ifndef LONG_MIN
508           { "LONG_MIN", 8 },
509           #endif
510           #ifndef L_ctermid
511           { "L_ctermid", 9 },
512           #endif
513           #ifndef L_cuserid
514           { "L_cuserid", 9 },
515           #endif
516           #ifndef L_tmpnam
517           { "L_tmpnam", 8 },
518           #endif
519           #ifndef MAX_CANON
520           { "MAX_CANON", 9 },
521           #endif
522           #ifndef MAX_INPUT
523           { "MAX_INPUT", 9 },
524           #endif
525           #ifndef MB_LEN_MAX
526           { "MB_LEN_MAX", 10 },
527           #endif
528           #ifndef MSG_CTRUNC
529           { "MSG_CTRUNC", 10 },
530           #endif
531           #ifndef MSG_DONTROUTE
532           { "MSG_DONTROUTE", 13 },
533           #endif
534           #ifndef MSG_EOR
535           { "MSG_EOR", 7 },
536           #endif
537           #ifndef MSG_OOB
538           { "MSG_OOB", 7 },
539           #endif
540           #ifndef MSG_PEEK
541           { "MSG_PEEK", 8 },
542           #endif
543           #ifndef MSG_TRUNC
544           { "MSG_TRUNC", 9 },
545           #endif
546           #ifndef MSG_WAITALL
547           { "MSG_WAITALL", 11 },
548           #endif
549           #ifndef NAME_MAX
550           { "NAME_MAX", 8 },
551           #endif
552           #ifndef NCCS
553           { "NCCS", 4 },
554           #endif
555           #ifndef NGROUPS_MAX
556           { "NGROUPS_MAX", 11 },
557           #endif
558           #ifndef NOFLSH
559           { "NOFLSH", 6 },
560           #endif
561           #ifndef OPEN_MAX
562           { "OPEN_MAX", 8 },
563           #endif
564           #ifndef OPOST
565           { "OPOST", 5 },
566           #endif
567           #ifndef PARENB
568           { "PARENB", 6 },
569           #endif
570           #ifndef PARMRK
571           { "PARMRK", 6 },
572           #endif
573           #ifndef PARODD
574           { "PARODD", 6 },
575           #endif
576           #ifndef PATH_MAX
577           { "PATH_MAX", 8 },
578           #endif
579           #ifndef PIPE_BUF
580           { "PIPE_BUF", 8 },
581           #endif
582           #ifndef RAND_MAX
583           { "RAND_MAX", 8 },
584           #endif
585           #ifndef R_OK
586           { "R_OK", 4 },
587           #endif
588           #ifndef SCHAR_MAX
589           { "SCHAR_MAX", 9 },
590           #endif
591           #ifndef SCHAR_MIN
592           { "SCHAR_MIN", 9 },
593           #endif
594           #ifndef SHRT_MAX
595           { "SHRT_MAX", 8 },
596           #endif
597           #ifndef SHRT_MIN
598           { "SHRT_MIN", 8 },
599           #endif
600           #ifndef SIGABRT
601           { "SIGABRT", 7 },
602           #endif
603           #ifndef SIGALRM
604           { "SIGALRM", 7 },
605           #endif
606           #ifndef SIGCHLD
607           { "SIGCHLD", 7 },
608           #endif
609           #ifndef SIGCONT
610           { "SIGCONT", 7 },
611           #endif
612           #ifndef SIGFPE
613           { "SIGFPE", 6 },
614           #endif
615           #ifndef SIGHUP
616           { "SIGHUP", 6 },
617           #endif
618           #ifndef SIGILL
619           { "SIGILL", 6 },
620           #endif
621           #ifndef SIGINT
622           { "SIGINT", 6 },
623           #endif
624           #ifndef SIGKILL
625           { "SIGKILL", 7 },
626           #endif
627           #ifndef SIGPIPE
628           { "SIGPIPE", 7 },
629           #endif
630           #ifndef SIGQUIT
631           { "SIGQUIT", 7 },
632           #endif
633           #ifndef SIGSEGV
634           { "SIGSEGV", 7 },
635           #endif
636           #ifndef SIGSTOP
637           { "SIGSTOP", 7 },
638           #endif
639           #ifndef SIGTERM
640           { "SIGTERM", 7 },
641           #endif
642           #ifndef SIGTSTP
643           { "SIGTSTP", 7 },
644           #endif
645           #ifndef SIGTTIN
646           { "SIGTTIN", 7 },
647           #endif
648           #ifndef SIGTTOU
649           { "SIGTTOU", 7 },
650           #endif
651           #ifndef SIGUSR1
652           { "SIGUSR1", 7 },
653           #endif
654           #ifndef SIGUSR2
655           { "SIGUSR2", 7 },
656           #endif
657           #ifndef SIG_BLOCK
658           { "SIG_BLOCK", 9 },
659           #endif
660           #ifndef SIG_SETMASK
661           { "SIG_SETMASK", 11 },
662           #endif
663           #ifndef SIG_UNBLOCK
664           { "SIG_UNBLOCK", 11 },
665           #endif
666           #ifndef SSIZE_MAX
667           { "SSIZE_MAX", 9 },
668           #endif
669           #ifndef SIGBUS
670           { "SIGBUS", 6 },
671           #endif
672           #ifndef SIGPOLL
673           { "SIGPOLL", 7 },
674           #endif
675           #ifndef SIGPROF
676           { "SIGPROF", 7 },
677           #endif
678           #ifndef SIGSYS
679           { "SIGSYS", 6 },
680           #endif
681           #ifndef SIGTRAP
682           { "SIGTRAP", 7 },
683           #endif
684           #ifndef SIGURG
685           { "SIGURG", 6 },
686           #endif
687           #ifndef SIGVTALRM
688           { "SIGVTALRM", 9 },
689           #endif
690           #ifndef SIGXCPU
691           { "SIGXCPU", 7 },
692           #endif
693           #ifndef SIGXFSZ
694           { "SIGXFSZ", 7 },
695           #endif
696           #ifndef STDERR_FILENO
697           { "STDERR_FILENO", 13 },
698           #endif
699           #ifndef STDIN_FILENO
700           { "STDIN_FILENO", 12 },
701           #endif
702           #ifndef STDOUT_FILENO
703           { "STDOUT_FILENO", 13 },
704           #endif
705           #ifndef STREAM_MAX
706           { "STREAM_MAX", 10 },
707           #endif
708           #ifndef TCIFLUSH
709           { "TCIFLUSH", 8 },
710           #endif
711           #ifndef TCIOFF
712           { "TCIOFF", 6 },
713           #endif
714           #ifndef TCIOFLUSH
715           { "TCIOFLUSH", 9 },
716           #endif
717           #ifndef TCION
718           { "TCION", 5 },
719           #endif
720           #ifndef TCOFLUSH
721           { "TCOFLUSH", 8 },
722           #endif
723           #ifndef TCOOFF
724           { "TCOOFF", 6 },
725           #endif
726           #ifndef TCOON
727           { "TCOON", 5 },
728           #endif
729           #ifndef TCSADRAIN
730           { "TCSADRAIN", 9 },
731           #endif
732           #ifndef TCSAFLUSH
733           { "TCSAFLUSH", 9 },
734           #endif
735           #ifndef TCSANOW
736           { "TCSANOW", 7 },
737           #endif
738           #ifndef TMP_MAX
739           { "TMP_MAX", 7 },
740           #endif
741           #ifndef TOSTOP
742           { "TOSTOP", 6 },
743           #endif
744           #ifndef TZNAME_MAX
745           { "TZNAME_MAX", 10 },
746           #endif
747           #ifndef VEOF
748           { "VEOF", 4 },
749           #endif
750           #ifndef VEOL
751           { "VEOL", 4 },
752           #endif
753           #ifndef VERASE
754           { "VERASE", 6 },
755           #endif
756           #ifndef VINTR
757           { "VINTR", 5 },
758           #endif
759           #ifndef VKILL
760           { "VKILL", 5 },
761           #endif
762           #ifndef VMIN
763           { "VMIN", 4 },
764           #endif
765           #ifndef VQUIT
766           { "VQUIT", 5 },
767           #endif
768           #ifndef VSTART
769           { "VSTART", 6 },
770           #endif
771           #ifndef VSTOP
772           { "VSTOP", 5 },
773           #endif
774           #ifndef VSUSP
775           { "VSUSP", 5 },
776           #endif
777           #ifndef VTIME
778           { "VTIME", 5 },
779           #endif
780           #ifndef WNOHANG
781           { "WNOHANG", 7 },
782           #endif
783           #ifndef WUNTRACED
784           { "WUNTRACED", 9 },
785           #endif
786           #ifndef W_OK
787           { "W_OK", 4 },
788           #endif
789           #ifndef X_OK
790           { "X_OK", 4 },
791           #endif
792           #ifndef _PC_CHOWN_RESTRICTED
793           { "_PC_CHOWN_RESTRICTED", 20 },
794           #endif
795           #ifndef _PC_LINK_MAX
796           { "_PC_LINK_MAX", 12 },
797           #endif
798           #ifndef _PC_MAX_CANON
799           { "_PC_MAX_CANON", 13 },
800           #endif
801           #ifndef _PC_MAX_INPUT
802           { "_PC_MAX_INPUT", 13 },
803           #endif
804           #ifndef _PC_NAME_MAX
805           { "_PC_NAME_MAX", 12 },
806           #endif
807           #ifndef _PC_NO_TRUNC
808           { "_PC_NO_TRUNC", 12 },
809           #endif
810           #ifndef _PC_PATH_MAX
811           { "_PC_PATH_MAX", 12 },
812           #endif
813           #ifndef _PC_PIPE_BUF
814           { "_PC_PIPE_BUF", 12 },
815           #endif
816           #ifndef _PC_VDISABLE
817           { "_PC_VDISABLE", 12 },
818           #endif
819           #ifndef _SC_ARG_MAX
820           { "_SC_ARG_MAX", 11 },
821           #endif
822           #ifndef _SC_CHILD_MAX
823           { "_SC_CHILD_MAX", 13 },
824           #endif
825           #ifndef _SC_CLK_TCK
826           { "_SC_CLK_TCK", 11 },
827           #endif
828           #ifndef _SC_JOB_CONTROL
829           { "_SC_JOB_CONTROL", 15 },
830           #endif
831           #ifndef _SC_NGROUPS_MAX
832           { "_SC_NGROUPS_MAX", 15 },
833           #endif
834           #ifndef _SC_OPEN_MAX
835           { "_SC_OPEN_MAX", 12 },
836           #endif
837           #ifndef _SC_PAGESIZE
838           { "_SC_PAGESIZE", 12 },
839           #endif
840           #ifndef _SC_SAVED_IDS
841           { "_SC_SAVED_IDS", 13 },
842           #endif
843           #ifndef _SC_STREAM_MAX
844           { "_SC_STREAM_MAX", 14 },
845           #endif
846           #ifndef _SC_TZNAME_MAX
847           { "_SC_TZNAME_MAX", 14 },
848           #endif
849           #ifndef _SC_VERSION
850           { "_SC_VERSION", 11 },
851           #endif
852           #ifndef EAI_AGAIN
853           { "EAI_AGAIN", 9 },
854           #endif
855           #ifndef EAI_BADFLAGS
856           { "EAI_BADFLAGS", 12 },
857           #endif
858           #ifndef EAI_FAIL
859           { "EAI_FAIL", 8 },
860           #endif
861           #ifndef EAI_FAMILY
862           { "EAI_FAMILY", 10 },
863           #endif
864           #ifndef EAI_MEMORY
865           { "EAI_MEMORY", 10 },
866           #endif
867           #ifndef EAI_NONAME
868           { "EAI_NONAME", 10 },
869           #endif
870           #ifndef EAI_SERVICE
871           { "EAI_SERVICE", 11 },
872           #endif
873           #ifndef EAI_SOCKTYPE
874           { "EAI_SOCKTYPE", 12 },
875           #endif
876           #ifndef EAI_SYSTEM
877           { "EAI_SYSTEM", 10 },
878           #endif
879           #ifndef EAI_OVERFLOW
880           { "EAI_OVERFLOW", 12 },
881           #endif
882           #ifndef CLK_TCK
883           { "CLK_TCK", 7 },
884           #endif
885           #ifndef MB_CUR_MAX
886           { "MB_CUR_MAX", 10 },
887           #endif
888           #ifndef SIG_DFL
889           { "SIG_DFL", 7 },
890           #endif
891           #ifndef SIG_ERR
892           { "SIG_ERR", 7 },
893           #endif
894           #ifndef SIG_IGN
895           { "SIG_IGN", 7 },
896           #endif
897           #ifndef L_tmpname
898           { "L_tmpname", 9 },
899           #endif
900           #ifndef NULL
901           { "NULL", 4 },
902           #endif
903           #ifndef FLT_ROUNDS
904           { "FLT_ROUNDS", 10 },
905           #endif
906           #if (defined(USE_LONG_DOUBLE) && defined(HUGE_VALL)) || defined(HUGE_VAL)
907           /* HUGE_VALL is admittedly non-POSIX but if we are using long doubles
908           * we might as well use long doubles. --jhi */
909           #else
910           { "HUGE_VAL", 8 },
911           #endif
912           #ifndef SA_NOCLDSTOP
913           { "SA_NOCLDSTOP", 12 },
914           #endif
915           #ifndef SA_NOCLDWAIT
916           { "SA_NOCLDWAIT", 12 },
917           #endif
918           #ifndef SA_NODEFER
919           { "SA_NODEFER", 10 },
920           #endif
921           #ifndef SA_ONSTACK
922           { "SA_ONSTACK", 10 },
923           #endif
924           #ifndef SA_RESETHAND
925           { "SA_RESETHAND", 12 },
926           #endif
927           #ifndef SA_RESTART
928           { "SA_RESTART", 10 },
929           #endif
930           #ifndef SA_SIGINFO
931           { "SA_SIGINFO", 10 },
932           #endif
933           #ifndef UCHAR_MAX
934           { "UCHAR_MAX", 9 },
935           #endif
936           #ifndef UINT_MAX
937           { "UINT_MAX", 8 },
938           #endif
939           #ifndef ULONG_MAX
940           { "ULONG_MAX", 9 },
941           #endif
942           #ifndef USHRT_MAX
943           { "USHRT_MAX", 9 },
944           #endif
945           #ifndef DBL_MAX
946           { "DBL_MAX", 7 },
947           #endif
948           #ifndef FLT_MAX
949           { "FLT_MAX", 7 },
950           #endif
951           #ifndef LDBL_MAX
952           { "LDBL_MAX", 8 },
953           #endif
954           #ifndef LDBL_MIN
955           { "LDBL_MIN", 8 },
956           #endif
957           #ifndef LDBL_EPSILON
958           { "LDBL_EPSILON", 12 },
959           #endif
960           #ifndef DBL_EPSILON
961           { "DBL_EPSILON", 11 },
962           #endif
963           #ifndef DBL_MIN
964           { "DBL_MIN", 7 },
965           #endif
966           #ifndef FLT_EPSILON
967           { "FLT_EPSILON", 11 },
968           #endif
969           #ifndef FLT_MIN
970           { "FLT_MIN", 7 },
971           #endif
972           #ifndef DBL_DIG
973           { "DBL_DIG", 7 },
974           #endif
975           #ifndef DBL_MANT_DIG
976           { "DBL_MANT_DIG", 12 },
977           #endif
978           #ifndef DBL_MAX_10_EXP
979           { "DBL_MAX_10_EXP", 14 },
980           #endif
981           #ifndef DBL_MAX_EXP
982           { "DBL_MAX_EXP", 11 },
983           #endif
984           #ifndef DBL_MIN_10_EXP
985           { "DBL_MIN_10_EXP", 14 },
986           #endif
987           #ifndef DBL_MIN_EXP
988           { "DBL_MIN_EXP", 11 },
989           #endif
990           #ifndef FLT_DIG
991           { "FLT_DIG", 7 },
992           #endif
993           #ifndef FLT_MANT_DIG
994           { "FLT_MANT_DIG", 12 },
995           #endif
996           #ifndef FLT_MAX_10_EXP
997           { "FLT_MAX_10_EXP", 14 },
998           #endif
999           #ifndef FLT_MAX_EXP
1000           { "FLT_MAX_EXP", 11 },
1001           #endif
1002           #ifndef FLT_MIN_10_EXP
1003           { "FLT_MIN_10_EXP", 14 },
1004           #endif
1005           #ifndef FLT_MIN_EXP
1006           { "FLT_MIN_EXP", 11 },
1007           #endif
1008           #ifndef FLT_RADIX
1009           { "FLT_RADIX", 9 },
1010           #endif
1011           #ifndef LDBL_DIG
1012           { "LDBL_DIG", 8 },
1013           #endif
1014           #ifndef LDBL_MANT_DIG
1015           { "LDBL_MANT_DIG", 13 },
1016           #endif
1017           #ifndef LDBL_MAX_10_EXP
1018           { "LDBL_MAX_10_EXP", 15 },
1019           #endif
1020           #ifndef LDBL_MAX_EXP
1021           { "LDBL_MAX_EXP", 12 },
1022           #endif
1023           #ifndef LDBL_MIN_10_EXP
1024           { "LDBL_MIN_10_EXP", 15 },
1025           #endif
1026           #ifndef LDBL_MIN_EXP
1027           { "LDBL_MIN_EXP", 12 },
1028           #endif
1029           #ifndef SIGRTMAX
1030           { "SIGRTMAX", 8 },
1031           #endif
1032           #ifndef SIGRTMIN
1033           { "SIGRTMIN", 8 },
1034           #endif
1035           { NULL, 0 } };
1036           struct iv_s {const char *name; I32 namelen; IV value;};
1037           struct nv_s {const char *name; I32 namelen; NV value;};
1038           struct uv_s {const char *name; I32 namelen; UV value;};
1039           struct yes_s {const char *name; I32 namelen;};