File Coverage

const-c.inc
Criterion Covered Total %
statement 21 24 87.5
branch 10 18 55.5
condition n/a
subroutine n/a
pod n/a
total 31 42 73.8


line stmt bran cond sub pod 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 1568           constant_add_symbol(pTHX_ HV *hash, const char *name, I32 namelen, SV *value) {
34 1568           HE *he = (HE*) hv_common_key_len(hash, name, namelen, HV_FETCH_LVALUE, NULL,
35             0);
36             SV *sv;
37              
38 1568 50         if (!he) {
39 0           Perl_croak(aTHX_ "Couldn't add key '%s' to %%Socket::",
40             name);
41             }
42 1568           sv = HeVAL(he);
43 1568 100         if (SvOK(sv) || SvTYPE(sv) == SVt_PVGV) {
    50          
    50          
    50          
44             /* Someone has been here before us - have to make a real sub. */
45 192           newCONSTSUB(hash, name, value);
46             } else {
47 1376 50         SvUPGRADE(sv, SVt_RV);
48 1376           SvRV_set(sv, value);
49 1376           SvROK_on(sv);
50 1376           SvREADONLY_on(value);
51             }
52 1568           }
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 8           get_missing_hash(pTHX) {
65 8           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 8           SV *const *const ref
71             = hv_fetch(parent, "Socket", 6, TRUE);
72             HV *new_hv;
73              
74 8 50         if (!ref)
75 0           return NULL;
76              
77 8 50         if (SvROK(*ref))
78 0           return (HV*) SvRV(*ref);
79              
80 8           new_hv = newHV();
81 8 50         SvUPGRADE(*ref, SVt_RV);
82 8           SvRV_set(*ref, (SV *)new_hv);
83 8           SvROK_on(*ref);
84 8           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 AF_802
94             { "AF_802", 6 },
95             #endif
96             #ifndef AF_AAL
97             { "AF_AAL", 6 },
98             #endif
99             #ifndef AF_APPLETALK
100             { "AF_APPLETALK", 12 },
101             #endif
102             #ifndef AF_CCITT
103             { "AF_CCITT", 8 },
104             #endif
105             #ifndef AF_CHAOS
106             { "AF_CHAOS", 8 },
107             #endif
108             #ifndef AF_CTF
109             { "AF_CTF", 6 },
110             #endif
111             #ifndef AF_DATAKIT
112             { "AF_DATAKIT", 10 },
113             #endif
114             #ifndef AF_DECnet
115             { "AF_DECnet", 9 },
116             #endif
117             #ifndef AF_DLI
118             { "AF_DLI", 6 },
119             #endif
120             #ifndef AF_ECMA
121             { "AF_ECMA", 7 },
122             #endif
123             #ifndef AF_GOSIP
124             { "AF_GOSIP", 8 },
125             #endif
126             #ifndef AF_HYLINK
127             { "AF_HYLINK", 9 },
128             #endif
129             #ifndef AF_IMPLINK
130             { "AF_IMPLINK", 10 },
131             #endif
132             #ifndef AF_INET
133             { "AF_INET", 7 },
134             #endif
135             #ifndef AF_INET6
136             { "AF_INET6", 8 },
137             #endif
138             #ifndef AF_ISO
139             { "AF_ISO", 6 },
140             #endif
141             #ifndef AF_KEY
142             { "AF_KEY", 6 },
143             #endif
144             #ifndef AF_LAST
145             { "AF_LAST", 7 },
146             #endif
147             #ifndef AF_LAT
148             { "AF_LAT", 6 },
149             #endif
150             #ifndef AF_LINK
151             { "AF_LINK", 7 },
152             #endif
153             #ifndef AF_LOCAL
154             { "AF_LOCAL", 8 },
155             #endif
156             #ifndef AF_MAX
157             { "AF_MAX", 6 },
158             #endif
159             #ifndef AF_NBS
160             { "AF_NBS", 6 },
161             #endif
162             #ifndef AF_NIT
163             { "AF_NIT", 6 },
164             #endif
165             #ifndef AF_NS
166             { "AF_NS", 5 },
167             #endif
168             #ifndef AF_OSI
169             { "AF_OSI", 6 },
170             #endif
171             #ifndef AF_OSINET
172             { "AF_OSINET", 9 },
173             #endif
174             #ifndef AF_PUP
175             { "AF_PUP", 6 },
176             #endif
177             #ifndef AF_ROUTE
178             { "AF_ROUTE", 8 },
179             #endif
180             #ifndef AF_SNA
181             { "AF_SNA", 6 },
182             #endif
183             #ifndef AF_UNIX
184             { "AF_UNIX", 7 },
185             #endif
186             #ifndef AF_UNSPEC
187             { "AF_UNSPEC", 9 },
188             #endif
189             #ifndef AF_USER
190             { "AF_USER", 7 },
191             #endif
192             #ifndef AF_WAN
193             { "AF_WAN", 6 },
194             #endif
195             #ifndef AF_X25
196             { "AF_X25", 6 },
197             #endif
198             #ifndef AI_ADDRCONFIG
199             { "AI_ADDRCONFIG", 13 },
200             #endif
201             #ifndef AI_ALL
202             { "AI_ALL", 6 },
203             #endif
204             #ifndef AI_CANONIDN
205             { "AI_CANONIDN", 11 },
206             #endif
207             #ifndef AI_CANONNAME
208             { "AI_CANONNAME", 12 },
209             #endif
210             #ifndef AI_IDN
211             { "AI_IDN", 6 },
212             #endif
213             #ifndef AI_NUMERICHOST
214             { "AI_NUMERICHOST", 14 },
215             #endif
216             #ifndef AI_NUMERICSERV
217             { "AI_NUMERICSERV", 14 },
218             #endif
219             #ifndef AI_PASSIVE
220             { "AI_PASSIVE", 10 },
221             #endif
222             #ifndef AI_V4MAPPED
223             { "AI_V4MAPPED", 11 },
224             #endif
225             #ifndef EAI_ADDRFAMILY
226             { "EAI_ADDRFAMILY", 14 },
227             #endif
228             #ifndef EAI_AGAIN
229             { "EAI_AGAIN", 9 },
230             #endif
231             #ifndef EAI_BADFLAGS
232             { "EAI_BADFLAGS", 12 },
233             #endif
234             #ifndef EAI_BADHINTS
235             { "EAI_BADHINTS", 12 },
236             #endif
237             #ifndef EAI_FAIL
238             { "EAI_FAIL", 8 },
239             #endif
240             #ifndef EAI_FAMILY
241             { "EAI_FAMILY", 10 },
242             #endif
243             #ifndef EAI_NODATA
244             { "EAI_NODATA", 10 },
245             #endif
246             #ifndef EAI_NONAME
247             { "EAI_NONAME", 10 },
248             #endif
249             #ifndef EAI_PROTOCOL
250             { "EAI_PROTOCOL", 12 },
251             #endif
252             #ifndef EAI_SERVICE
253             { "EAI_SERVICE", 11 },
254             #endif
255             #ifndef EAI_SOCKTYPE
256             { "EAI_SOCKTYPE", 12 },
257             #endif
258             #ifndef EAI_SYSTEM
259             { "EAI_SYSTEM", 10 },
260             #endif
261             #ifndef IOV_MAX
262             { "IOV_MAX", 7 },
263             #endif
264             #ifndef IP_ADD_MEMBERSHIP
265             { "IP_ADD_MEMBERSHIP", 17 },
266             #endif
267             #ifndef IP_ADD_SOURCE_MEMBERSHIP
268             { "IP_ADD_SOURCE_MEMBERSHIP", 24 },
269             #endif
270             #ifndef IP_BIND_ADDRESS_NO_PORT
271             { "IP_BIND_ADDRESS_NO_PORT", 23 },
272             #endif
273             #ifndef IP_DROP_MEMBERSHIP
274             { "IP_DROP_MEMBERSHIP", 18 },
275             #endif
276             #ifndef IP_DROP_SOURCE_MEMBERSHIP
277             { "IP_DROP_SOURCE_MEMBERSHIP", 25 },
278             #endif
279             #ifndef IP_FREEBIND
280             { "IP_FREEBIND", 11 },
281             #endif
282             #ifndef IP_HDRINCL
283             { "IP_HDRINCL", 10 },
284             #endif
285             #ifndef IP_MULTICAST_ALL
286             { "IP_MULTICAST_ALL", 16 },
287             #endif
288             #ifndef IP_MULTICAST_IF
289             { "IP_MULTICAST_IF", 15 },
290             #endif
291             #ifndef IP_MULTICAST_LOOP
292             { "IP_MULTICAST_LOOP", 17 },
293             #endif
294             #ifndef IP_MULTICAST_TTL
295             { "IP_MULTICAST_TTL", 16 },
296             #endif
297             #ifndef IP_MTU
298             { "IP_MTU", 6 },
299             #endif
300             #ifndef IP_MTU_DISCOVER
301             { "IP_MTU_DISCOVER", 15 },
302             #endif
303             #ifndef IP_NODEFRAG
304             { "IP_NODEFRAG", 11 },
305             #endif
306             #ifndef IP_OPTIONS
307             { "IP_OPTIONS", 10 },
308             #endif
309             #ifndef IP_RECVERR
310             { "IP_RECVERR", 10 },
311             #endif
312             #ifndef IP_RECVOPTS
313             { "IP_RECVOPTS", 11 },
314             #endif
315             #ifndef IP_RECVRETOPTS
316             { "IP_RECVRETOPTS", 14 },
317             #endif
318             #ifndef IP_RETOPTS
319             { "IP_RETOPTS", 10 },
320             #endif
321             #ifndef IP_TOS
322             { "IP_TOS", 6 },
323             #endif
324             #ifndef IP_TRANSPARENT
325             { "IP_TRANSPARENT", 14 },
326             #endif
327             #ifndef IP_TTL
328             { "IP_TTL", 6 },
329             #endif
330             #ifndef IP_PMTUDISC_DO
331             { "IP_PMTUDISC_DO", 14 },
332             #endif
333             #ifndef IP_PMTUDISC_DONT
334             { "IP_PMTUDISC_DONT", 16 },
335             #endif
336             #ifndef IP_PMTUDISC_PROBE
337             { "IP_PMTUDISC_PROBE", 17 },
338             #endif
339             #ifndef IP_PMTUDISC_WANT
340             { "IP_PMTUDISC_WANT", 16 },
341             #endif
342             #ifndef IPTOS_LOWDELAY
343             { "IPTOS_LOWDELAY", 14 },
344             #endif
345             #ifndef IPTOS_THROUGHPUT
346             { "IPTOS_THROUGHPUT", 16 },
347             #endif
348             #ifndef IPTOS_RELIABILITY
349             { "IPTOS_RELIABILITY", 17 },
350             #endif
351             #ifndef IPTOS_MINCOST
352             { "IPTOS_MINCOST", 13 },
353             #endif
354             #ifndef IPV6_ADDRFROM
355             { "IPV6_ADDRFROM", 13 },
356             #endif
357             #ifndef IPV6_ADD_MEMBERSHIP
358             { "IPV6_ADD_MEMBERSHIP", 19 },
359             #endif
360             #ifndef IPV6_DROP_MEMBERSHIP
361             { "IPV6_DROP_MEMBERSHIP", 20 },
362             #endif
363             #ifndef IPV6_JOIN_GROUP
364             { "IPV6_JOIN_GROUP", 15 },
365             #endif
366             #ifndef IPV6_LEAVE_GROUP
367             { "IPV6_LEAVE_GROUP", 16 },
368             #endif
369             #ifndef IPV6_MTU
370             { "IPV6_MTU", 8 },
371             #endif
372             #ifndef IPV6_MTU_DISCOVER
373             { "IPV6_MTU_DISCOVER", 17 },
374             #endif
375             #ifndef IPV6_MULTICAST_HOPS
376             { "IPV6_MULTICAST_HOPS", 19 },
377             #endif
378             #ifndef IPV6_MULTICAST_IF
379             { "IPV6_MULTICAST_IF", 17 },
380             #endif
381             #ifndef IPV6_MULTICAST_LOOP
382             { "IPV6_MULTICAST_LOOP", 19 },
383             #endif
384             #ifndef IPV6_RECVERR
385             { "IPV6_RECVERR", 12 },
386             #endif
387             #ifndef IPV6_ROUTER_ALERT
388             { "IPV6_ROUTER_ALERT", 17 },
389             #endif
390             #ifndef IPV6_UNICAST_HOPS
391             { "IPV6_UNICAST_HOPS", 17 },
392             #endif
393             #ifndef IPV6_V6ONLY
394             { "IPV6_V6ONLY", 11 },
395             #endif
396             #ifndef LOCAL_CONNWAIT
397             { "LOCAL_CONNWAIT", 14 },
398             #endif
399             #ifndef LOCAL_CREDS
400             { "LOCAL_CREDS", 11 },
401             #endif
402             #ifndef LOCAL_OCREDS
403             { "LOCAL_OCREDS", 12 },
404             #endif
405             #ifndef LOCAL_PEEREID
406             { "LOCAL_PEEREID", 13 },
407             #endif
408             #ifndef MSG_BCAST
409             { "MSG_BCAST", 9 },
410             #endif
411             #ifndef MSG_BTAG
412             { "MSG_BTAG", 8 },
413             #endif
414             #ifndef MSG_CTLFLAGS
415             { "MSG_CTLFLAGS", 12 },
416             #endif
417             #ifndef MSG_CTLIGNORE
418             { "MSG_CTLIGNORE", 13 },
419             #endif
420             #ifndef MSG_DONTWAIT
421             { "MSG_DONTWAIT", 12 },
422             #endif
423             #ifndef MSG_EOF
424             { "MSG_EOF", 7 },
425             #endif
426             #ifndef MSG_EOR
427             { "MSG_EOR", 7 },
428             #endif
429             #ifndef MSG_ERRQUEUE
430             { "MSG_ERRQUEUE", 12 },
431             #endif
432             #ifndef MSG_ETAG
433             { "MSG_ETAG", 8 },
434             #endif
435             #ifndef MSG_FASTOPEN
436             { "MSG_FASTOPEN", 12 },
437             #endif
438             #ifndef MSG_FIN
439             { "MSG_FIN", 7 },
440             #endif
441             #ifndef MSG_MAXIOVLEN
442             { "MSG_MAXIOVLEN", 13 },
443             #endif
444             #ifndef MSG_MCAST
445             { "MSG_MCAST", 9 },
446             #endif
447             #ifndef MSG_NOSIGNAL
448             { "MSG_NOSIGNAL", 12 },
449             #endif
450             #ifndef MSG_RST
451             { "MSG_RST", 7 },
452             #endif
453             #ifndef MSG_SYN
454             { "MSG_SYN", 7 },
455             #endif
456             #ifndef MSG_TRUNC
457             { "MSG_TRUNC", 9 },
458             #endif
459             #ifndef MSG_URG
460             { "MSG_URG", 7 },
461             #endif
462             #ifndef MSG_WAITALL
463             { "MSG_WAITALL", 11 },
464             #endif
465             #ifndef MSG_WIRE
466             { "MSG_WIRE", 8 },
467             #endif
468             #ifndef NI_DGRAM
469             { "NI_DGRAM", 8 },
470             #endif
471             #ifndef NI_IDN
472             { "NI_IDN", 6 },
473             #endif
474             #ifndef NI_NAMEREQD
475             { "NI_NAMEREQD", 11 },
476             #endif
477             #ifndef NI_NOFQDN
478             { "NI_NOFQDN", 9 },
479             #endif
480             #ifndef NI_NUMERICHOST
481             { "NI_NUMERICHOST", 14 },
482             #endif
483             #ifndef NI_NUMERICSERV
484             { "NI_NUMERICSERV", 14 },
485             #endif
486             #ifndef PF_802
487             { "PF_802", 6 },
488             #endif
489             #ifndef PF_AAL
490             { "PF_AAL", 6 },
491             #endif
492             #ifndef PF_APPLETALK
493             { "PF_APPLETALK", 12 },
494             #endif
495             #ifndef PF_CCITT
496             { "PF_CCITT", 8 },
497             #endif
498             #ifndef PF_CHAOS
499             { "PF_CHAOS", 8 },
500             #endif
501             #ifndef PF_CTF
502             { "PF_CTF", 6 },
503             #endif
504             #ifndef PF_DATAKIT
505             { "PF_DATAKIT", 10 },
506             #endif
507             #ifndef PF_DECnet
508             { "PF_DECnet", 9 },
509             #endif
510             #ifndef PF_DLI
511             { "PF_DLI", 6 },
512             #endif
513             #ifndef PF_ECMA
514             { "PF_ECMA", 7 },
515             #endif
516             #ifndef PF_GOSIP
517             { "PF_GOSIP", 8 },
518             #endif
519             #ifndef PF_HYLINK
520             { "PF_HYLINK", 9 },
521             #endif
522             #ifndef PF_IMPLINK
523             { "PF_IMPLINK", 10 },
524             #endif
525             #ifndef PF_INET
526             { "PF_INET", 7 },
527             #endif
528             #ifndef PF_INET6
529             { "PF_INET6", 8 },
530             #endif
531             #ifndef PF_ISO
532             { "PF_ISO", 6 },
533             #endif
534             #ifndef PF_KEY
535             { "PF_KEY", 6 },
536             #endif
537             #ifndef PF_LAST
538             { "PF_LAST", 7 },
539             #endif
540             #ifndef PF_LAT
541             { "PF_LAT", 6 },
542             #endif
543             #ifndef PF_LINK
544             { "PF_LINK", 7 },
545             #endif
546             #ifndef PF_LOCAL
547             { "PF_LOCAL", 8 },
548             #endif
549             #ifndef PF_MAX
550             { "PF_MAX", 6 },
551             #endif
552             #ifndef PF_NBS
553             { "PF_NBS", 6 },
554             #endif
555             #ifndef PF_NIT
556             { "PF_NIT", 6 },
557             #endif
558             #ifndef PF_NS
559             { "PF_NS", 5 },
560             #endif
561             #ifndef PF_OSI
562             { "PF_OSI", 6 },
563             #endif
564             #ifndef PF_OSINET
565             { "PF_OSINET", 9 },
566             #endif
567             #ifndef PF_PUP
568             { "PF_PUP", 6 },
569             #endif
570             #ifndef PF_ROUTE
571             { "PF_ROUTE", 8 },
572             #endif
573             #ifndef PF_SNA
574             { "PF_SNA", 6 },
575             #endif
576             #ifndef PF_UNIX
577             { "PF_UNIX", 7 },
578             #endif
579             #ifndef PF_UNSPEC
580             { "PF_UNSPEC", 9 },
581             #endif
582             #ifndef PF_USER
583             { "PF_USER", 7 },
584             #endif
585             #ifndef PF_WAN
586             { "PF_WAN", 6 },
587             #endif
588             #ifndef PF_X25
589             { "PF_X25", 6 },
590             #endif
591             #ifndef SCM_CONNECT
592             { "SCM_CONNECT", 11 },
593             #endif
594             #ifndef SCM_CREDENTIALS
595             { "SCM_CREDENTIALS", 15 },
596             #endif
597             #ifndef SCM_CREDS
598             { "SCM_CREDS", 9 },
599             #endif
600             #ifndef SCM_TIMESTAMP
601             { "SCM_TIMESTAMP", 13 },
602             #endif
603             #ifndef SOCK_DGRAM
604             { "SOCK_DGRAM", 10 },
605             #endif
606             #ifndef SOCK_RAW
607             { "SOCK_RAW", 8 },
608             #endif
609             #ifndef SOCK_RDM
610             { "SOCK_RDM", 8 },
611             #endif
612             #ifndef SOCK_SEQPACKET
613             { "SOCK_SEQPACKET", 14 },
614             #endif
615             #ifndef SOCK_STREAM
616             { "SOCK_STREAM", 11 },
617             #endif
618             #ifndef SOCK_NONBLOCK
619             { "SOCK_NONBLOCK", 13 },
620             #endif
621             #ifndef SOCK_CLOEXEC
622             { "SOCK_CLOEXEC", 12 },
623             #endif
624             #ifndef SOL_SOCKET
625             { "SOL_SOCKET", 10 },
626             #endif
627             #ifndef SOMAXCONN
628             { "SOMAXCONN", 9 },
629             #endif
630             #ifndef SO_ACCEPTCONN
631             { "SO_ACCEPTCONN", 13 },
632             #endif
633             #ifndef SO_ATTACH_FILTER
634             { "SO_ATTACH_FILTER", 16 },
635             #endif
636             #ifndef SO_BACKLOG
637             { "SO_BACKLOG", 10 },
638             #endif
639             #ifndef SO_BINDTODEVICE
640             { "SO_BINDTODEVICE", 15 },
641             #endif
642             #ifndef SO_BROADCAST
643             { "SO_BROADCAST", 12 },
644             #endif
645             #ifndef SO_BSDCOMPAT
646             { "SO_BSDCOMPAT", 12 },
647             #endif
648             #ifndef SO_BUSY_POLL
649             { "SO_BUSY_POLL", 12 },
650             #endif
651             #ifndef SO_CHAMELEON
652             { "SO_CHAMELEON", 12 },
653             #endif
654             #ifndef SO_DEBUG
655             { "SO_DEBUG", 8 },
656             #endif
657             #ifndef SO_DETACH_FILTER
658             { "SO_DETACH_FILTER", 16 },
659             #endif
660             #ifndef SO_DGRAM_ERRIND
661             { "SO_DGRAM_ERRIND", 15 },
662             #endif
663             #ifndef SO_DOMAIN
664             { "SO_DOMAIN", 9 },
665             #endif
666             #ifndef SO_DONTLINGER
667             { "SO_DONTLINGER", 13 },
668             #endif
669             #ifndef SO_DONTROUTE
670             { "SO_DONTROUTE", 12 },
671             #endif
672             #ifndef SO_ERROR
673             { "SO_ERROR", 8 },
674             #endif
675             #ifndef SO_FAMILY
676             { "SO_FAMILY", 9 },
677             #endif
678             #ifndef SO_INCOMING_CPU
679             { "SO_INCOMING_CPU", 15 },
680             #endif
681             #ifndef SO_INCOMING_NAPI_ID
682             { "SO_INCOMING_NAPI_ID", 19 },
683             #endif
684             #ifndef SO_KEEPALIVE
685             { "SO_KEEPALIVE", 12 },
686             #endif
687             #ifndef SO_LINGER
688             { "SO_LINGER", 9 },
689             #endif
690             #ifndef SO_LOCK_FILTER
691             { "SO_LOCK_FILTER", 14 },
692             #endif
693             #ifndef SO_MARK
694             { "SO_MARK", 7 },
695             #endif
696             #ifndef SO_OOBINLINE
697             { "SO_OOBINLINE", 12 },
698             #endif
699             #ifndef SO_PASSCRED
700             { "SO_PASSCRED", 11 },
701             #endif
702             #ifndef SO_PASSIFNAME
703             { "SO_PASSIFNAME", 13 },
704             #endif
705             #ifndef SO_PEEK_OFF
706             { "SO_PEEK_OFF", 11 },
707             #endif
708             #ifndef SO_PEERCRED
709             { "SO_PEERCRED", 11 },
710             #endif
711             #ifndef SO_PRIORITY
712             { "SO_PRIORITY", 11 },
713             #endif
714             #ifndef SO_PROTOCOL
715             { "SO_PROTOCOL", 11 },
716             #endif
717             #ifndef SO_PROTOTYPE
718             { "SO_PROTOTYPE", 12 },
719             #endif
720             #ifndef SO_RCVBUF
721             { "SO_RCVBUF", 9 },
722             #endif
723             #ifndef SO_RCVBUFFORCE
724             { "SO_RCVBUFFORCE", 14 },
725             #endif
726             #ifndef SO_RCVLOWAT
727             { "SO_RCVLOWAT", 11 },
728             #endif
729             #ifndef SO_RCVTIMEO
730             { "SO_RCVTIMEO", 11 },
731             #endif
732             #ifndef SO_REUSEADDR
733             { "SO_REUSEADDR", 12 },
734             #endif
735             #ifndef SO_REUSEPORT
736             { "SO_REUSEPORT", 12 },
737             #endif
738             #ifndef SO_RXQ_OVFL
739             { "SO_RXQ_OVFL", 11 },
740             #endif
741             #ifndef SO_SECURITY_AUTHENTICATION
742             { "SO_SECURITY_AUTHENTICATION", 26 },
743             #endif
744             #ifndef SO_SECURITY_ENCRYPTION_NETWORK
745             { "SO_SECURITY_ENCRYPTION_NETWORK", 30 },
746             #endif
747             #ifndef SO_SECURITY_ENCRYPTION_TRANSPORT
748             { "SO_SECURITY_ENCRYPTION_TRANSPORT", 32 },
749             #endif
750             #ifndef SO_SNDBUF
751             { "SO_SNDBUF", 9 },
752             #endif
753             #ifndef SO_SNDBUFFORCE
754             { "SO_SNDBUFFORCE", 14 },
755             #endif
756             #ifndef SO_SNDLOWAT
757             { "SO_SNDLOWAT", 11 },
758             #endif
759             #ifndef SO_SNDTIMEO
760             { "SO_SNDTIMEO", 11 },
761             #endif
762             #ifndef SO_STATE
763             { "SO_STATE", 8 },
764             #endif
765             #ifndef SO_TIMESTAMP
766             { "SO_TIMESTAMP", 12 },
767             #endif
768             #ifndef SO_TYPE
769             { "SO_TYPE", 7 },
770             #endif
771             #ifndef SO_USELOOPBACK
772             { "SO_USELOOPBACK", 14 },
773             #endif
774             #ifndef SO_XOPEN
775             { "SO_XOPEN", 8 },
776             #endif
777             #ifndef SO_XSE
778             { "SO_XSE", 6 },
779             #endif
780             #ifndef TCP_CONGESTION
781             { "TCP_CONGESTION", 14 },
782             #endif
783             #ifndef TCP_CONNECTIONTIMEOUT
784             { "TCP_CONNECTIONTIMEOUT", 21 },
785             #endif
786             #ifndef TCP_CORK
787             { "TCP_CORK", 8 },
788             #endif
789             #ifndef TCP_DEFER_ACCEPT
790             { "TCP_DEFER_ACCEPT", 16 },
791             #endif
792             #ifndef TCP_FASTOPEN
793             { "TCP_FASTOPEN", 12 },
794             #endif
795             #ifndef TCP_INFO
796             { "TCP_INFO", 8 },
797             #endif
798             #ifndef TCP_INIT_CWND
799             { "TCP_INIT_CWND", 13 },
800             #endif
801             #ifndef TCP_KEEPALIVE
802             { "TCP_KEEPALIVE", 13 },
803             #endif
804             #ifndef TCP_KEEPCNT
805             { "TCP_KEEPCNT", 11 },
806             #endif
807             #ifndef TCP_KEEPIDLE
808             { "TCP_KEEPIDLE", 12 },
809             #endif
810             #ifndef TCP_KEEPINTVL
811             { "TCP_KEEPINTVL", 13 },
812             #endif
813             #ifndef TCP_LINGER2
814             { "TCP_LINGER2", 11 },
815             #endif
816             #ifndef TCP_MAXRT
817             { "TCP_MAXRT", 9 },
818             #endif
819             #ifndef TCP_MAXSEG
820             { "TCP_MAXSEG", 10 },
821             #endif
822             #ifndef TCP_MD5SIG
823             { "TCP_MD5SIG", 10 },
824             #endif
825             #ifndef TCP_NODELAY
826             { "TCP_NODELAY", 11 },
827             #endif
828             #ifndef TCP_NOOPT
829             { "TCP_NOOPT", 9 },
830             #endif
831             #ifndef TCP_NOPUSH
832             { "TCP_NOPUSH", 10 },
833             #endif
834             #ifndef TCP_QUICKACK
835             { "TCP_QUICKACK", 12 },
836             #endif
837             #ifndef TCP_SACK_ENABLE
838             { "TCP_SACK_ENABLE", 15 },
839             #endif
840             #ifndef TCP_STDURG
841             { "TCP_STDURG", 10 },
842             #endif
843             #ifndef TCP_SYNCNT
844             { "TCP_SYNCNT", 10 },
845             #endif
846             #ifndef TCP_USER_TIMEOUT
847             { "TCP_USER_TIMEOUT", 16 },
848             #endif
849             #ifndef TCP_WINDOW_CLAMP
850             { "TCP_WINDOW_CLAMP", 16 },
851             #endif
852             #ifndef UIO_MAXIOV
853             { "UIO_MAXIOV", 10 },
854             #endif
855             #if defined(MSG_CTRUNC) || defined(HAS_MSG_CTRUNC) /* might be an enum */
856             #else
857             { "MSG_CTRUNC", 10 },
858             #endif
859             #if defined(MSG_DONTROUTE) || defined(HAS_MSG_DONTROUTE) /* might be an enum */
860             #else
861             { "MSG_DONTROUTE", 13 },
862             #endif
863             #if defined(MSG_OOB) || defined(HAS_MSG_OOB) /* might be an enum */
864             #else
865             { "MSG_OOB", 7 },
866             #endif
867             #if defined(MSG_PEEK) || defined(HAS_MSG_PEEK) /* might be an enum */
868             #else
869             { "MSG_PEEK", 8 },
870             #endif
871             #if defined(MSG_PROXY) || defined(HAS_MSG_PROXY) /* might be an enum */
872             #else
873             { "MSG_PROXY", 9 },
874             #endif
875             #if defined(SCM_RIGHTS) || defined(HAS_SCM_RIGHTS) /* might be an enum */
876             #else
877             { "SCM_RIGHTS", 10 },
878             #endif
879             #ifndef INADDR_ANY
880             { "INADDR_ANY", 10 },
881             #endif
882             #ifndef INADDR_LOOPBACK
883             { "INADDR_LOOPBACK", 15 },
884             #endif
885             #ifndef INADDR_NONE
886             { "INADDR_NONE", 11 },
887             #endif
888             #ifndef INADDR_BROADCAST
889             { "INADDR_BROADCAST", 16 },
890             #endif
891             #ifdef IN6ADDR_ANY_INIT
892             #else
893             { "IN6ADDR_ANY", 11 },
894             #endif
895             #ifdef IN6ADDR_LOOPBACK_INIT
896             #else
897             { "IN6ADDR_LOOPBACK", 16 },
898             #endif
899             { NULL, 0 } };
900             struct iv_s {const char *name; I32 namelen; IV value;};