github.com/afumu/libc@v0.0.6/netinet/in/in_netbsd_arm.go (about)

     1  // Code generated by 'ccgo netinet/in/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o netinet/in/in_netbsd_arm.go -pkgname in', DO NOT EDIT.
     2  
     3  package in
     4  
     5  import (
     6  	"math"
     7  	"reflect"
     8  	"sync/atomic"
     9  	"unsafe"
    10  )
    11  
    12  var _ = math.Pi
    13  var _ reflect.Kind
    14  var _ atomic.Value
    15  var _ unsafe.Pointer
    16  
    17  const (
    18  	AF_APPLETALK                  = 16                   // socket.h:218:1:
    19  	AF_ARP                        = 28                   // socket.h:237:1:
    20  	AF_BLUETOOTH                  = 31                   // socket.h:243:1:
    21  	AF_CAN                        = 35                   // socket.h:247:1:
    22  	AF_CCITT                      = 10                   // socket.h:212:1:
    23  	AF_CHAOS                      = 5                    // socket.h:206:1:
    24  	AF_CNT                        = 21                   // socket.h:225:1:
    25  	AF_COIP                       = 20                   // socket.h:224:1:
    26  	AF_DATAKIT                    = 9                    // socket.h:211:1:
    27  	AF_DECnet                     = 12                   // socket.h:214:1:
    28  	AF_DLI                        = 13                   // socket.h:215:1:
    29  	AF_E164                       = 26                   // socket.h:235:1:
    30  	AF_ECMA                       = 8                    // socket.h:210:1:
    31  	AF_ETHER                      = 36                   // socket.h:248:1:
    32  	AF_HYLINK                     = 15                   // socket.h:217:1:
    33  	AF_IEEE80211                  = 32                   // socket.h:244:1:
    34  	AF_IMPLINK                    = 3                    // socket.h:204:1:
    35  	AF_INET                       = 2                    // socket.h:203:1:
    36  	AF_INET6                      = 24                   // socket.h:230:1:
    37  	AF_IPX                        = 23                   // socket.h:229:1:
    38  	AF_ISDN                       = 26                   // socket.h:234:1:
    39  	AF_ISO                        = 7                    // socket.h:208:1:
    40  	AF_LAT                        = 14                   // socket.h:216:1:
    41  	AF_LINK                       = 18                   // socket.h:220:1:
    42  	AF_LOCAL                      = 1                    // socket.h:201:1:
    43  	AF_MAX                        = 37                   // socket.h:249:1:
    44  	AF_MPLS                       = 33                   // socket.h:245:1:
    45  	AF_NATM                       = 27                   // socket.h:236:1:
    46  	AF_NS                         = 6                    // socket.h:207:1:
    47  	AF_OROUTE                     = 17                   // socket.h:219:1:
    48  	AF_OSI                        = 7                    // socket.h:209:1:
    49  	AF_PUP                        = 4                    // socket.h:205:1:
    50  	AF_ROUTE                      = 34                   // socket.h:246:1:
    51  	AF_SNA                        = 11                   // socket.h:213:1:
    52  	AF_UNIX                       = 1                    // socket.h:202:1:
    53  	AF_UNSPEC                     = 0                    // socket.h:200:1:
    54  	BIG_ENDIAN                    = 4321                 // endian.h:101:1:
    55  	BYTE_ORDER                    = 1234                 // endian.h:103:1:
    56  	CTL_IPPROTO_IPSEC             = 258                  // in.h:118:1:
    57  	FD_SETSIZE                    = 256                  // fd_set.h:59:1:
    58  	ICMP6_FILTER                  = 18                   // in6.h:393:1:
    59  	INET6_ADDRSTRLEN              = 46                   // in6.h:138:1:
    60  	INET6_IS_ADDR_LINKLOCAL       = 1                    // in6.h:678:1:
    61  	INET6_IS_ADDR_MC_LINKLOCAL    = 2                    // in6.h:679:1:
    62  	INET6_IS_ADDR_SITELOCAL       = 4                    // in6.h:680:1:
    63  	INET_ADDRSTRLEN               = 16                   // in.h:249:1:
    64  	INT16_MAX                     = 32767                // common_int_limits.h:53:1:
    65  	INT16_MIN                     = -32768               // common_int_limits.h:47:1:
    66  	INT32_MAX                     = 2147483647           // common_int_limits.h:54:1:
    67  	INT32_MIN                     = -2147483648          // common_int_limits.h:48:1:
    68  	INT64_MAX                     = 9223372036854775807  // common_int_limits.h:55:1:
    69  	INT64_MIN                     = -9223372036854775808 // common_int_limits.h:49:1:
    70  	INT8_MAX                      = 127                  // common_int_limits.h:52:1:
    71  	INT8_MIN                      = -128                 // common_int_limits.h:46:1:
    72  	INTMAX_MAX                    = 9223372036854775807  // common_int_limits.h:111:1:
    73  	INTMAX_MIN                    = -9223372036854775808 // common_int_limits.h:110:1:
    74  	INTPTR_MAX                    = 2147483647           // common_int_limits.h:105:1:
    75  	INTPTR_MIN                    = -2147483648          // common_int_limits.h:104:1:
    76  	INT_FAST16_MAX                = 2147483647           // common_int_limits.h:93:1:
    77  	INT_FAST16_MIN                = -2147483648          // common_int_limits.h:87:1:
    78  	INT_FAST32_MAX                = 2147483647           // common_int_limits.h:94:1:
    79  	INT_FAST32_MIN                = -2147483648          // common_int_limits.h:88:1:
    80  	INT_FAST64_MAX                = 9223372036854775807  // common_int_limits.h:95:1:
    81  	INT_FAST64_MIN                = -9223372036854775808 // common_int_limits.h:89:1:
    82  	INT_FAST8_MAX                 = 2147483647           // common_int_limits.h:92:1:
    83  	INT_FAST8_MIN                 = -2147483648          // common_int_limits.h:86:1:
    84  	INT_LEAST16_MAX               = 32767                // common_int_limits.h:73:1:
    85  	INT_LEAST16_MIN               = -32768               // common_int_limits.h:67:1:
    86  	INT_LEAST32_MAX               = 2147483647           // common_int_limits.h:74:1:
    87  	INT_LEAST32_MIN               = -2147483648          // common_int_limits.h:68:1:
    88  	INT_LEAST64_MAX               = 9223372036854775807  // common_int_limits.h:75:1:
    89  	INT_LEAST64_MIN               = -9223372036854775808 // common_int_limits.h:69:1:
    90  	INT_LEAST8_MAX                = 127                  // common_int_limits.h:72:1:
    91  	INT_LEAST8_MIN                = -128                 // common_int_limits.h:66:1:
    92  	IN_CLASSA_MAX                 = 128                  // in.h:182:1:
    93  	IN_CLASSA_NSHIFT              = 24                   // in.h:180:1:
    94  	IN_CLASSB_MAX                 = 65536                // in.h:189:1:
    95  	IN_CLASSB_NSHIFT              = 16                   // in.h:187:1:
    96  	IN_CLASSC_NSHIFT              = 8                    // in.h:194:1:
    97  	IN_CLASSD_NSHIFT              = 28                   // in.h:201:1:
    98  	IN_LOOPBACKNET                = 127                  // in.h:236:1:
    99  	IPCTL_ALLOWSRCRT              = 7                    // in.h:348:1:
   100  	IPCTL_ANONPORTMAX             = 11                   // in.h:352:1:
   101  	IPCTL_ANONPORTMIN             = 10                   // in.h:351:1:
   102  	IPCTL_CHECKINTERFACE          = 20                   // in.h:361:1:
   103  	IPCTL_DAD_COUNT               = 25                   // in.h:366:1:
   104  	IPCTL_DEFTTL                  = 3                    // in.h:344:1:
   105  	IPCTL_DIRECTEDBCAST           = 6                    // in.h:347:1:
   106  	IPCTL_FORWARDING              = 1                    // in.h:342:1:
   107  	IPCTL_FORWSRCRT               = 5                    // in.h:346:1:
   108  	IPCTL_GIF_TTL                 = 15                   // in.h:356:1:
   109  	IPCTL_GRE_TTL                 = 19                   // in.h:360:1:
   110  	IPCTL_HOSTZEROBROADCAST       = 14                   // in.h:355:1:
   111  	IPCTL_IFQ                     = 21                   // in.h:362:1:
   112  	IPCTL_LOOPBACKCKSUM           = 23                   // in.h:364:1:
   113  	IPCTL_LOWPORTMAX              = 17                   // in.h:358:1:
   114  	IPCTL_LOWPORTMIN              = 16                   // in.h:357:1:
   115  	IPCTL_MAXFLOWS                = 13                   // in.h:354:1:
   116  	IPCTL_MAXFRAGPACKETS          = 18                   // in.h:359:1:
   117  	IPCTL_MTUDISC                 = 9                    // in.h:350:1:
   118  	IPCTL_MTUDISCTIMEOUT          = 12                   // in.h:353:1:
   119  	IPCTL_RANDOMID                = 22                   // in.h:363:1:
   120  	IPCTL_SENDREDIRECTS           = 2                    // in.h:343:1:
   121  	IPCTL_STATS                   = 24                   // in.h:365:1:
   122  	IPCTL_SUBNETSARELOCAL         = 8                    // in.h:349:1:
   123  	IPPORT_ANONMAX                = 65535                // in.h:151:1:
   124  	IPPORT_ANONMIN                = 49152                // in.h:150:1:
   125  	IPPORT_RESERVED               = 1024                 // in.h:149:1:
   126  	IPPORT_RESERVEDMAX            = 1023                 // in.h:153:1:
   127  	IPPORT_RESERVEDMIN            = 600                  // in.h:152:1:
   128  	IPPROTO_AH                    = 51                   // in.h:95:1:
   129  	IPPROTO_CARP                  = 112                  // in.h:107:1:
   130  	IPPROTO_DCCP                  = 33                   // in.h:88:1:
   131  	IPPROTO_DONE                  = 257                  // in.h:115:1:
   132  	IPPROTO_DSTOPTS               = 60                   // in.h:100:1:
   133  	IPPROTO_EGP                   = 8                    // in.h:83:1:
   134  	IPPROTO_ENCAP                 = 98                   // in.h:103:1:
   135  	IPPROTO_EON                   = 80                   // in.h:101:1:
   136  	IPPROTO_ESP                   = 50                   // in.h:94:1:
   137  	IPPROTO_ETHERIP               = 97                   // in.h:102:1:
   138  	IPPROTO_FRAGMENT              = 44                   // in.h:91:1:
   139  	IPPROTO_GGP                   = 3                    // in.h:79:1:
   140  	IPPROTO_GRE                   = 47                   // in.h:93:1:
   141  	IPPROTO_HOPOPTS               = 0                    // in.h:76:1:
   142  	IPPROTO_ICMP                  = 1                    // in.h:77:1:
   143  	IPPROTO_ICMPV6                = 58                   // in.h:98:1:
   144  	IPPROTO_IDP                   = 22                   // in.h:86:1:
   145  	IPPROTO_IGMP                  = 2                    // in.h:78:1:
   146  	IPPROTO_IP                    = 0                    // in.h:75:1:
   147  	IPPROTO_IPCOMP                = 108                  // in.h:105:1:
   148  	IPPROTO_IPIP                  = 4                    // in.h:81:1:
   149  	IPPROTO_IPV4                  = 4                    // in.h:80:1:
   150  	IPPROTO_IPV6                  = 41                   // in.h:89:1:
   151  	IPPROTO_IPV6_ICMP             = 58                   // in.h:97:1:
   152  	IPPROTO_L2TP                  = 115                  // in.h:108:1:
   153  	IPPROTO_MAX                   = 256                  // in.h:112:1:
   154  	IPPROTO_MOBILE                = 55                   // in.h:96:1:
   155  	IPPROTO_NONE                  = 59                   // in.h:99:1:
   156  	IPPROTO_PFSYNC                = 240                  // in.h:110:1:
   157  	IPPROTO_PIM                   = 103                  // in.h:104:1:
   158  	IPPROTO_PUP                   = 12                   // in.h:84:1:
   159  	IPPROTO_RAW                   = 255                  // in.h:111:1:
   160  	IPPROTO_ROUTING               = 43                   // in.h:90:1:
   161  	IPPROTO_RSVP                  = 46                   // in.h:92:1:
   162  	IPPROTO_SCTP                  = 132                  // in.h:109:1:
   163  	IPPROTO_TCP                   = 6                    // in.h:82:1:
   164  	IPPROTO_TP                    = 29                   // in.h:87:1:
   165  	IPPROTO_UDP                   = 17                   // in.h:85:1:
   166  	IPPROTO_VRRP                  = 112                  // in.h:106:1:
   167  	IPV6CTL_ACCEPT_RTADV          = 12                   // in6.h:509:1:
   168  	IPV6CTL_ADDRCTLPOLICY         = 38                   // in6.h:530:1:
   169  	IPV6CTL_ANONPORTMAX           = 29                   // in6.h:524:1:
   170  	IPV6CTL_ANONPORTMIN           = 28                   // in6.h:523:1:
   171  	IPV6CTL_AUTO_FLOWLABEL        = 17                   // in6.h:514:1:
   172  	IPV6CTL_AUTO_LINKLOCAL        = 35                   // in6.h:528:1:
   173  	IPV6CTL_DAD_COUNT             = 16                   // in6.h:513:1:
   174  	IPV6CTL_DEFHLIM               = 3                    // in6.h:500:1:
   175  	IPV6CTL_DEFMCASTHLIM          = 18                   // in6.h:515:1:
   176  	IPV6CTL_FORWARDING            = 1                    // in6.h:498:1:
   177  	IPV6CTL_FORWSRCRT             = 5                    // in6.h:502:1:
   178  	IPV6CTL_GIF_HLIM              = 19                   // in6.h:516:1:
   179  	IPV6CTL_HDRNESTLIMIT          = 15                   // in6.h:512:1:
   180  	IPV6CTL_IFQ                   = 42                   // in6.h:534:1:
   181  	IPV6CTL_KAME_VERSION          = 20                   // in6.h:517:1:
   182  	IPV6CTL_KEEPFAITH             = 13                   // in6.h:510:1:
   183  	IPV6CTL_LOG_INTERVAL          = 14                   // in6.h:511:1:
   184  	IPV6CTL_LOWPORTMAX            = 31                   // in6.h:526:1:
   185  	IPV6CTL_LOWPORTMIN            = 30                   // in6.h:525:1:
   186  	IPV6CTL_MAXFRAGPACKETS        = 9                    // in6.h:506:1:
   187  	IPV6CTL_MAXFRAGS              = 41                   // in6.h:533:1:
   188  	IPV6CTL_MRTPROTO              = 8                    // in6.h:505:1:
   189  	IPV6CTL_MRTSTATS              = 7                    // in6.h:504:1:
   190  	IPV6CTL_RR_PRUNE              = 22                   // in6.h:519:1:
   191  	IPV6CTL_RTADV_MAXROUTES       = 43                   // in6.h:535:1:
   192  	IPV6CTL_RTADV_NUMROUTES       = 44                   // in6.h:537:1:
   193  	IPV6CTL_SENDREDIRECTS         = 2                    // in6.h:499:1:
   194  	IPV6CTL_SOURCECHECK           = 10                   // in6.h:507:1:
   195  	IPV6CTL_SOURCECHECK_LOGINT    = 11                   // in6.h:508:1:
   196  	IPV6CTL_STATS                 = 6                    // in6.h:503:1:
   197  	IPV6CTL_USE_DEFAULTZONE       = 39                   // in6.h:531:1:
   198  	IPV6CTL_USE_DEPRECATED        = 21                   // in6.h:518:1:
   199  	IPV6CTL_V6ONLY                = 24                   // in6.h:521:1:
   200  	IPV6PORT_ANONMAX              = 65535                // in6.h:115:1:
   201  	IPV6PORT_ANONMIN              = 49152                // in6.h:114:1:
   202  	IPV6PORT_RESERVED             = 1024                 // in6.h:113:1:
   203  	IPV6PORT_RESERVEDMAX          = 1023                 // in6.h:117:1:
   204  	IPV6PORT_RESERVEDMIN          = 600                  // in6.h:116:1:
   205  	IPV6_CHECKSUM                 = 26                   // in6.h:405:1:
   206  	IPV6_DEFAULT_MULTICAST_HOPS   = 1                    // in6.h:453:1:
   207  	IPV6_DEFAULT_MULTICAST_LOOP   = 1                    // in6.h:454:1:
   208  	IPV6_DONTFRAG                 = 62                   // in6.h:441:1:
   209  	IPV6_DSTOPTS                  = 50                   // in6.h:432:1:
   210  	IPV6_FAITH                    = 29                   // in6.h:409:1:
   211  	IPV6_HOPLIMIT                 = 47                   // in6.h:429:1:
   212  	IPV6_HOPOPTS                  = 49                   // in6.h:431:1:
   213  	IPV6_IPSEC_POLICY             = 28                   // in6.h:408:1:
   214  	IPV6_JOIN_GROUP               = 12                   // in6.h:388:1:
   215  	IPV6_LEAVE_GROUP              = 13                   // in6.h:389:1:
   216  	IPV6_MULTICAST_HOPS           = 10                   // in6.h:385:1:
   217  	IPV6_MULTICAST_IF             = 9                    // in6.h:384:1:
   218  	IPV6_MULTICAST_LOOP           = 11                   // in6.h:386:1:
   219  	IPV6_NEXTHOP                  = 48                   // in6.h:430:1:
   220  	IPV6_PATHMTU                  = 44                   // in6.h:424:1:
   221  	IPV6_PKTINFO                  = 46                   // in6.h:428:1:
   222  	IPV6_PORTALGO                 = 17                   // in6.h:392:1:
   223  	IPV6_PORTRANGE                = 14                   // in6.h:390:1:
   224  	IPV6_PORTRANGE_DEFAULT        = 0                    // in6.h:484:1:
   225  	IPV6_PORTRANGE_HIGH           = 1                    // in6.h:485:1:
   226  	IPV6_PORTRANGE_LOW            = 2                    // in6.h:486:1:
   227  	IPV6_PREFER_TEMPADDR          = 63                   // in6.h:442:1:
   228  	IPV6_RECVDSTOPTS              = 40                   // in6.h:418:1:
   229  	IPV6_RECVHOPLIMIT             = 37                   // in6.h:415:1:
   230  	IPV6_RECVHOPOPTS              = 39                   // in6.h:417:1:
   231  	IPV6_RECVPATHMTU              = 43                   // in6.h:423:1:
   232  	IPV6_RECVPKTINFO              = 36                   // in6.h:414:1:
   233  	IPV6_RECVRTHDR                = 38                   // in6.h:416:1:
   234  	IPV6_RECVTCLASS               = 57                   // in6.h:435:1:
   235  	IPV6_RTHDR                    = 51                   // in6.h:433:1:
   236  	IPV6_RTHDRDSTOPTS             = 35                   // in6.h:412:1:
   237  	IPV6_RTHDR_LOOSE              = 0                    // in6.h:446:1:
   238  	IPV6_RTHDR_STRICT             = 1                    // in6.h:447:1:
   239  	IPV6_RTHDR_TYPE_0             = 0                    // in6.h:448:1:
   240  	IPV6_SOCKOPT_RESERVED1        = 3                    // in6.h:382:1:
   241  	IPV6_TCLASS                   = 61                   // in6.h:440:1:
   242  	IPV6_UNICAST_HOPS             = 4                    // in6.h:383:1:
   243  	IPV6_USE_MIN_MTU              = 42                   // in6.h:422:1:
   244  	IPV6_V6ONLY                   = 27                   // in6.h:406:1:
   245  	IP_ADD_MEMBERSHIP             = 12                   // in.h:283:1:
   246  	IP_DEFAULT_MULTICAST_LOOP     = 1                    // in.h:312:1:
   247  	IP_DEFAULT_MULTICAST_TTL      = 1                    // in.h:311:1:
   248  	IP_DROP_MEMBERSHIP            = 13                   // in.h:284:1:
   249  	IP_ERRORMTU                   = 21                   // in.h:288:1:
   250  	IP_HDRINCL                    = 2                    // in.h:272:1:
   251  	IP_IPSEC_POLICY               = 22                   // in.h:289:1:
   252  	IP_MAX_MEMBERSHIPS            = 20                   // in.h:313:1:
   253  	IP_MINTTL                     = 24                   // in.h:291:1:
   254  	IP_MULTICAST_IF               = 9                    // in.h:279:1:
   255  	IP_MULTICAST_LOOP             = 11                   // in.h:281:1:
   256  	IP_MULTICAST_TTL              = 10                   // in.h:280:1:
   257  	IP_OPTIONS                    = 1                    // in.h:271:1:
   258  	IP_PKTINFO                    = 25                   // in.h:292:1:
   259  	IP_PORTALGO                   = 18                   // in.h:285:1:
   260  	IP_PORTRANGE                  = 19                   // in.h:286:1:
   261  	IP_PORTRANGE_DEFAULT          = 0                    // in.h:327:1:
   262  	IP_PORTRANGE_HIGH             = 1                    // in.h:328:1:
   263  	IP_PORTRANGE_LOW              = 2                    // in.h:329:1:
   264  	IP_RECVDSTADDR                = 7                    // in.h:277:1:
   265  	IP_RECVIF                     = 20                   // in.h:287:1:
   266  	IP_RECVOPTS                   = 5                    // in.h:275:1:
   267  	IP_RECVPKTINFO                = 26                   // in.h:293:1:
   268  	IP_RECVRETOPTS                = 6                    // in.h:276:1:
   269  	IP_RECVTTL                    = 23                   // in.h:290:1:
   270  	IP_RETOPTS                    = 8                    // in.h:278:1:
   271  	IP_SENDSRCADDR                = 7                    // in.h:295:1:
   272  	IP_TOS                        = 3                    // in.h:273:1:
   273  	IP_TTL                        = 4                    // in.h:274:1:
   274  	LITTLE_ENDIAN                 = 1234                 // endian.h:100:1:
   275  	MSG_BCAST                     = 0x0100               // socket.h:497:1:
   276  	MSG_CMSG_CLOEXEC              = 0x0800               // socket.h:501:1:
   277  	MSG_CONTROLMBUF               = 0x2000000            // socket.h:515:1:
   278  	MSG_CTRUNC                    = 0x0020               // socket.h:494:1:
   279  	MSG_DONTROUTE                 = 0x0004               // socket.h:491:1:
   280  	MSG_DONTWAIT                  = 0x0080               // socket.h:496:1:
   281  	MSG_EOR                       = 0x0008               // socket.h:492:1:
   282  	MSG_IOVUSRSPACE               = 0x4000000            // socket.h:516:1:
   283  	MSG_LENUSRSPACE               = 0x8000000            // socket.h:517:1:
   284  	MSG_MCAST                     = 0x0200               // socket.h:498:1:
   285  	MSG_NAMEMBUF                  = 0x1000000            // socket.h:514:1:
   286  	MSG_NBIO                      = 0x1000               // socket.h:502:1:
   287  	MSG_NOSIGNAL                  = 0x0400               // socket.h:499:1:
   288  	MSG_NOTIFICATION              = 0x4000               // socket.h:504:1:
   289  	MSG_OOB                       = 0x0001               // socket.h:489:1:
   290  	MSG_PEEK                      = 0x0002               // socket.h:490:1:
   291  	MSG_TRUNC                     = 0x0010               // socket.h:493:1:
   292  	MSG_USERFLAGS                 = 0x0ffffff            // socket.h:513:1:
   293  	MSG_WAITALL                   = 0x0040               // socket.h:495:1:
   294  	MSG_WAITFORONE                = 0x2000               // socket.h:503:1:
   295  	NBBY                          = 8                    // types.h:316:1:
   296  	NET_RT_DUMP                   = 1                    // socket.h:457:1:
   297  	NET_RT_FLAGS                  = 2                    // socket.h:458:1:
   298  	NET_RT_IFLIST                 = 6                    // socket.h:462:1:
   299  	NET_RT_OIFLIST                = 5                    // socket.h:461:1:
   300  	NET_RT_OOIFLIST               = 4                    // socket.h:460:1:
   301  	NET_RT_OOOIFLIST              = 3                    // socket.h:459:1:
   302  	NFDBITS                       = 32                   // fd_set.h:93:1:
   303  	NODEVMAJOR                    = -1                   // types.h:258:1:
   304  	PCB_ALL                       = 0                    // socket.h:444:1:
   305  	PCB_SLOP                      = 20                   // socket.h:443:1:
   306  	PDP_ENDIAN                    = 3412                 // endian.h:102:1:
   307  	PF_APPLETALK                  = 16                   // socket.h:334:1:
   308  	PF_ARP                        = 28                   // socket.h:351:1:
   309  	PF_BLUETOOTH                  = 31                   // socket.h:355:1:
   310  	PF_CAN                        = 35                   // socket.h:358:1:
   311  	PF_CCITT                      = 10                   // socket.h:328:1:
   312  	PF_CHAOS                      = 5                    // socket.h:322:1:
   313  	PF_CNT                        = 21                   // socket.h:341:1:
   314  	PF_COIP                       = 20                   // socket.h:340:1:
   315  	PF_DATAKIT                    = 9                    // socket.h:327:1:
   316  	PF_DECnet                     = 12                   // socket.h:330:1:
   317  	PF_DLI                        = 13                   // socket.h:331:1:
   318  	PF_E164                       = 26                   // socket.h:349:1:
   319  	PF_ECMA                       = 8                    // socket.h:326:1:
   320  	PF_ETHER                      = 36                   // socket.h:359:1:
   321  	PF_HYLINK                     = 15                   // socket.h:333:1:
   322  	PF_IMPLINK                    = 3                    // socket.h:320:1:
   323  	PF_INET                       = 2                    // socket.h:319:1:
   324  	PF_INET6                      = 24                   // socket.h:342:1:
   325  	PF_IPX                        = 23                   // socket.h:343:1:
   326  	PF_ISDN                       = 26                   // socket.h:348:1:
   327  	PF_ISO                        = 7                    // socket.h:324:1:
   328  	PF_KEY                        = 29                   // socket.h:353:1:
   329  	PF_LAT                        = 14                   // socket.h:332:1:
   330  	PF_LINK                       = 18                   // socket.h:336:1:
   331  	PF_LOCAL                      = 1                    // socket.h:317:1:
   332  	PF_MAX                        = 37                   // socket.h:361:1:
   333  	PF_MPLS                       = 33                   // socket.h:356:1:
   334  	PF_NATM                       = 27                   // socket.h:350:1:
   335  	PF_NS                         = 6                    // socket.h:323:1:
   336  	PF_OROUTE                     = 17                   // socket.h:335:1:
   337  	PF_OSI                        = 7                    // socket.h:325:1:
   338  	PF_PIP                        = 25                   // socket.h:346:1:
   339  	PF_PUP                        = 4                    // socket.h:321:1:
   340  	PF_ROUTE                      = 34                   // socket.h:357:1:
   341  	PF_RTIP                       = 22                   // socket.h:345:1:
   342  	PF_SNA                        = 11                   // socket.h:329:1:
   343  	PF_UNIX                       = 1                    // socket.h:318:1:
   344  	PF_UNSPEC                     = 0                    // socket.h:316:1:
   345  	PF_XTP                        = 19                   // socket.h:338:1:
   346  	PTRDIFF_MAX                   = 2147483647           // common_int_limits.h:121:1:
   347  	PTRDIFF_MIN                   = -2147483648          // common_int_limits.h:120:1:
   348  	SCM_CREDS                     = 0x10                 // socket.h:581:1:
   349  	SCM_RIGHTS                    = 0x01                 // socket.h:576:1:
   350  	SCM_TIMESTAMP                 = 0x08                 // socket.h:580:1:
   351  	SHUT_RD                       = 0                    // socket.h:587:1:
   352  	SHUT_RDWR                     = 2                    // socket.h:589:1:
   353  	SHUT_WR                       = 1                    // socket.h:588:1:
   354  	SIG_ATOMIC_MAX                = 2147483647           // common_int_limits.h:125:1:
   355  	SIG_ATOMIC_MIN                = -2147483648          // common_int_limits.h:124:1:
   356  	SIN6_LEN                      = 0                    // in6.h:144:1:
   357  	SIZE_MAX                      = 4294967295           // common_int_limits.h:128:1:
   358  	SOCK_CLOEXEC                  = 0x10000000           // socket.h:113:1:
   359  	SOCK_CONN_DGRAM               = 6                    // socket.h:110:1:
   360  	SOCK_DCCP                     = 6                    // socket.h:111:1:
   361  	SOCK_DGRAM                    = 2                    // socket.h:106:1:
   362  	SOCK_FLAGS_MASK               = 0xf0000000           // socket.h:116:1:
   363  	SOCK_NONBLOCK                 = 0x20000000           // socket.h:114:1:
   364  	SOCK_NOSIGPIPE                = 0x40000000           // socket.h:115:1:
   365  	SOCK_RAW                      = 3                    // socket.h:107:1:
   366  	SOCK_RDM                      = 4                    // socket.h:108:1:
   367  	SOCK_SEQPACKET                = 5                    // socket.h:109:1:
   368  	SOCK_STREAM                   = 1                    // socket.h:105:1:
   369  	SOL_SOCKET                    = 0xffff               // socket.h:195:1:
   370  	SOMAXCONN                     = 128                  // socket.h:470:1:
   371  	SO_ACCEPTCONN                 = 0x0002               // socket.h:122:1:
   372  	SO_ACCEPTFILTER               = 0x1000               // socket.h:133:1:
   373  	SO_BROADCAST                  = 0x0020               // socket.h:126:1:
   374  	SO_DEBUG                      = 0x0001               // socket.h:121:1:
   375  	SO_DEFOPTS                    = 27645                // socket.h:138:1:
   376  	SO_DONTROUTE                  = 0x0010               // socket.h:125:1:
   377  	SO_ERROR                      = 0x1007               // socket.h:169:1:
   378  	SO_KEEPALIVE                  = 0x0008               // socket.h:124:1:
   379  	SO_LINGER                     = 0x0080               // socket.h:128:1:
   380  	SO_NOHEADER                   = 0x100a               // socket.h:173:1:
   381  	SO_NOSIGPIPE                  = 0x0800               // socket.h:132:1:
   382  	SO_OOBINLINE                  = 0x0100               // socket.h:129:1:
   383  	SO_OVERFLOWED                 = 0x1009               // socket.h:171:1:
   384  	SO_RCVBUF                     = 0x1002               // socket.h:164:1:
   385  	SO_RCVLOWAT                   = 0x1004               // socket.h:166:1:
   386  	SO_RCVTIMEO                   = 0x100c               // socket.h:178:1:
   387  	SO_RERROR                     = 0x4000               // socket.h:135:1:
   388  	SO_REUSEADDR                  = 0x0004               // socket.h:123:1:
   389  	SO_REUSEPORT                  = 0x0200               // socket.h:130:1:
   390  	SO_SNDBUF                     = 0x1001               // socket.h:163:1:
   391  	SO_SNDLOWAT                   = 0x1003               // socket.h:165:1:
   392  	SO_SNDTIMEO                   = 0x100b               // socket.h:177:1:
   393  	SO_TIMESTAMP                  = 0x2000               // socket.h:134:1:
   394  	SO_TYPE                       = 0x1008               // socket.h:170:1:
   395  	SO_USELOOPBACK                = 0x0040               // socket.h:127:1:
   396  	UINT16_MAX                    = 65535                // common_int_limits.h:59:1:
   397  	UINT32_MAX                    = 4294967295           // common_int_limits.h:60:1:
   398  	UINT64_MAX                    = 18446744073709551615 // common_int_limits.h:61:1:
   399  	UINT8_MAX                     = 255                  // common_int_limits.h:58:1:
   400  	UINTMAX_MAX                   = 18446744073709551615 // common_int_limits.h:112:1:
   401  	UINTPTR_MAX                   = 4294967295           // common_int_limits.h:106:1:
   402  	UINT_FAST16_MAX               = 4294967295           // common_int_limits.h:99:1:
   403  	UINT_FAST32_MAX               = 4294967295           // common_int_limits.h:100:1:
   404  	UINT_FAST64_MAX               = 18446744073709551615 // common_int_limits.h:101:1:
   405  	UINT_FAST8_MAX                = 4294967295           // common_int_limits.h:98:1:
   406  	UINT_LEAST16_MAX              = 65535                // common_int_limits.h:79:1:
   407  	UINT_LEAST32_MAX              = 4294967295           // common_int_limits.h:80:1:
   408  	UINT_LEAST64_MAX              = 18446744073709551615 // common_int_limits.h:81:1:
   409  	UINT_LEAST8_MAX               = 255                  // common_int_limits.h:78:1:
   410  	UIO_MAXIOV                    = 1024                 // uio.h:97:1:
   411  	WCHAR_MAX                     = 2147483647           // wchar_limits.h:50:1:
   412  	WCHAR_MIN                     = -2147483648          // wchar_limits.h:42:1:
   413  	WINT_MAX                      = 2147483647           // wchar_limits.h:68:1:
   414  	WINT_MIN                      = -2147483648          // wchar_limits.h:60:1:
   415  	X_ARM_ARCH_4T                 = 0                    // cdefs.h:44:1:
   416  	X_ARM_ARCH_5                  = 0                    // cdefs.h:40:1:
   417  	X_ARM_ARCH_5T                 = 0                    // cdefs.h:36:1:
   418  	X_ARM_ARCH_6                  = 0                    // cdefs.h:31:1:
   419  	X_ARM_ARCH_7                  = 0                    // cdefs.h:20:1:
   420  	X_ARM_ARCH_DWORD_OK           = 0                    // cdefs.h:51:1:
   421  	X_ARM_ARCH_T2                 = 0                    // cdefs.h:24:1:
   422  	X_ARM_BSWAP_H_                = 0                    // bswap.h:4:1:
   423  	X_ARM_BYTE_SWAP_H_            = 0                    // byte_swap.h:33:1:
   424  	X_ARM_CDEFS_H_                = 0                    // cdefs.h:4:1:
   425  	X_ARM_INT_CONST_H_            = 0                    // int_const.h:33:1:
   426  	X_ARM_INT_LIMITS_H_           = 0                    // int_limits.h:33:1:
   427  	X_ARM_INT_MWGWTYPES_H_        = 0                    // int_mwgwtypes.h:33:1:
   428  	X_ARM_INT_TYPES_H_            = 0                    // int_types.h:33:1:
   429  	X_ARM_TYPES_H_                = 0                    // types.h:35:1:
   430  	X_ARM_WCHAR_LIMITS_H_         = 0                    // wchar_limits.h:33:1:
   431  	X_BIG_ENDIAN                  = 4321                 // endian.h:44:1:
   432  	X_BSD_INT16_T_                = 0                    // types.h:65:1:
   433  	X_BSD_INT32_T_                = 0                    // types.h:75:1:
   434  	X_BSD_INT64_T_                = 0                    // types.h:85:1:
   435  	X_BSD_INT8_T_                 = 0                    // types.h:55:1:
   436  	X_BSD_INTPTR_T_               = 0                    // stdint.h:80:1:
   437  	X_BSD_UINT16_T_               = 0                    // types.h:70:1:
   438  	X_BSD_UINT32_T_               = 0                    // in.h:52:1:
   439  	X_BSD_UINT64_T_               = 0                    // types.h:90:1:
   440  	X_BSD_UINT8_T_                = 0                    // in.h:47:1:
   441  	X_BSD_UINTPTR_T_              = 0                    // stdint.h:85:1:
   442  	X_BYTE_ORDER                  = 1234                 // endian_machdep.h:7:1:
   443  	X_FILE_OFFSET_BITS            = 64                   // <builtin>:25:1:
   444  	X_LIB_PTHREAD_TYPES_H         = 0                    // pthread_types.h:33:1:
   445  	X_LITTLE_ENDIAN               = 1234                 // endian.h:43:1:
   446  	X_NETBSD_SOURCE               = 1                    // featuretest.h:70:1:
   447  	X_NETINET6_IN6_H_             = 0                    // in6.h:65:1:
   448  	X_NETINET_IN_H_               = 0                    // in.h:40:1:
   449  	X_PDP_ENDIAN                  = 3412                 // endian.h:45:1:
   450  	X_PT_BARRIERATTR_DEAD         = 0xDEAD0808           // pthread_types.h:278:1:
   451  	X_PT_BARRIERATTR_MAGIC        = 0x88880808           // pthread_types.h:277:1:
   452  	X_PT_BARRIER_DEAD             = 0xDEAD0008           // pthread_types.h:270:1:
   453  	X_PT_BARRIER_MAGIC            = 0x88880008           // pthread_types.h:269:1:
   454  	X_PT_CONDATTR_DEAD            = 0xDEAD0006           // pthread_types.h:197:1:
   455  	X_PT_CONDATTR_MAGIC           = 0x66660006           // pthread_types.h:196:1:
   456  	X_PT_COND_DEAD                = 0xDEAD0005           // pthread_types.h:182:1:
   457  	X_PT_COND_MAGIC               = 0x55550005           // pthread_types.h:181:1:
   458  	X_PT_MUTEXATTR_DEAD           = 0xDEAD0004           // pthread_types.h:167:1:
   459  	X_PT_MUTEXATTR_MAGIC          = 0x44440004           // pthread_types.h:166:1:
   460  	X_PT_MUTEX_DEAD               = 0xDEAD0003           // pthread_types.h:139:1:
   461  	X_PT_MUTEX_MAGIC              = 0x33330003           // pthread_types.h:138:1:
   462  	X_PT_RWLOCKATTR_DEAD          = 0xDEAD0909           // pthread_types.h:253:1:
   463  	X_PT_RWLOCKATTR_MAGIC         = 0x99990909           // pthread_types.h:252:1:
   464  	X_PT_RWLOCK_DEAD              = 0xDEAD0009           // pthread_types.h:236:1:
   465  	X_PT_RWLOCK_MAGIC             = 0x99990009           // pthread_types.h:235:1:
   466  	X_PT_SPINLOCK_DEAD            = 0xDEAD0007           // pthread_types.h:213:1:
   467  	X_PT_SPINLOCK_MAGIC           = 0x77770007           // pthread_types.h:212:1:
   468  	X_PT_SPINLOCK_PSHARED         = 0x00000001           // pthread_types.h:214:1:
   469  	X_QUAD_HIGHWORD               = 1                    // endian.h:84:1:
   470  	X_QUAD_LOWWORD                = 0                    // endian.h:85:1:
   471  	X_SS_MAXSIZE                  = 128                  // socket.h:294:1:
   472  	X_SYS_ANSI_H_                 = 0                    // ansi.h:33:1:
   473  	X_SYS_BSWAP_H_                = 0                    // bswap.h:6:1:
   474  	X_SYS_CDEFS_ELF_H_            = 0                    // cdefs_elf.h:31:1:
   475  	X_SYS_CDEFS_H_                = 0                    // cdefs.h:37:1:
   476  	X_SYS_COMMON_ANSI_H_          = 0                    // common_ansi.h:33:1:
   477  	X_SYS_COMMON_INT_LIMITS_H_    = 0                    // common_int_limits.h:33:1:
   478  	X_SYS_COMMON_INT_MWGWTYPES_H_ = 0                    // common_int_mwgwtypes.h:33:1:
   479  	X_SYS_COMMON_INT_TYPES_H_     = 0                    // common_int_types.h:33:1:
   480  	X_SYS_ENDIAN_H_               = 0                    // endian.h:35:1:
   481  	X_SYS_FD_SET_H_               = 0                    // fd_set.h:35:1:
   482  	X_SYS_SIGTYPES_H_             = 0                    // sigtypes.h:40:1:
   483  	X_SYS_SOCKET_H_               = 0                    // socket.h:64:1:
   484  	X_SYS_STDINT_H_               = 0                    // stdint.h:33:1:
   485  	X_SYS_TYPES_H_                = 0                    // types.h:40:1:
   486  	X_SYS_UIO_H_                  = 0                    // uio.h:35:1:
   487  	Pseudo_AF_HDRCMPLT            = 30                   // socket.h:240:1:
   488  	Pseudo_AF_KEY                 = 29                   // socket.h:239:1:
   489  	Pseudo_AF_PIP                 = 25                   // socket.h:232:1:
   490  	Pseudo_AF_RTIP                = 22                   // socket.h:227:1:
   491  	Pseudo_AF_XTP                 = 19                   // socket.h:222:1:
   492  )
   493  
   494  // file offset
   495  
   496  const ( /* uio.h:69:1: */
   497  	UIO_READ  = 0
   498  	UIO_WRITE = 1
   499  )
   500  
   501  // Segment flag values.
   502  const ( /* uio.h:72:1: */
   503  	UIO_USERSPACE = 0 // from user data space
   504  	UIO_SYSSPACE  = 1
   505  )
   506  
   507  type Ptrdiff_t = int32 /* <builtin>:3:26 */
   508  
   509  type Size_t = uint32 /* <builtin>:9:23 */
   510  
   511  type Wchar_t = int32 /* <builtin>:15:24 */
   512  
   513  type X__builtin_va_list = uintptr /* <builtin>:46:14 */
   514  type X__float128 = float64        /* <builtin>:47:21 */
   515  
   516  //	$NetBSD: in.h,v 1.108 2018/11/09 11:46:28 maya Exp $
   517  
   518  // Copyright (c) 1982, 1986, 1990, 1993
   519  //	The Regents of the University of California.  All rights reserved.
   520  //
   521  // Redistribution and use in source and binary forms, with or without
   522  // modification, are permitted provided that the following conditions
   523  // are met:
   524  // 1. Redistributions of source code must retain the above copyright
   525  //    notice, this list of conditions and the following disclaimer.
   526  // 2. Redistributions in binary form must reproduce the above copyright
   527  //    notice, this list of conditions and the following disclaimer in the
   528  //    documentation and/or other materials provided with the distribution.
   529  // 3. Neither the name of the University nor the names of its contributors
   530  //    may be used to endorse or promote products derived from this software
   531  //    without specific prior written permission.
   532  //
   533  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   534  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   535  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   536  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   537  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   538  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   539  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   540  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   541  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   542  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   543  // SUCH DAMAGE.
   544  //
   545  //	@(#)in.h	8.3 (Berkeley) 1/3/94
   546  
   547  // Constants and structures defined by the internet system,
   548  // Per RFC 790, September 1981, and numerous additions.
   549  
   550  //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
   551  
   552  // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
   553  // Public domain.
   554  //
   555  // NOTE: Do not protect this header against multiple inclusion.  Doing
   556  // so can have subtle side-effects due to header file inclusion order
   557  // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
   558  // protect each CPP macro that we want to supply.
   559  
   560  // Feature-test macros are defined by several standards, and allow an
   561  // application to specify what symbols they want the system headers to
   562  // expose, and hence what standard they want them to conform to.
   563  // There are two classes of feature-test macros.  The first class
   564  // specify complete standards, and if one of these is defined, header
   565  // files will try to conform to the relevant standard.  They are:
   566  //
   567  // ANSI macros:
   568  // _ANSI_SOURCE			ANSI C89
   569  //
   570  // POSIX macros:
   571  // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
   572  // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
   573  // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
   574  // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
   575  // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
   576  // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
   577  // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
   578  //
   579  // X/Open macros:
   580  // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
   581  // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
   582  // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
   583  // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
   584  // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
   585  // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
   586  //
   587  // NetBSD macros:
   588  // _NETBSD_SOURCE == 1		Make all NetBSD features available.
   589  //
   590  // If more than one of these "major" feature-test macros is defined,
   591  // then the set of facilities provided (and namespace used) is the
   592  // union of that specified by the relevant standards, and in case of
   593  // conflict, the earlier standard in the above list has precedence (so
   594  // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
   595  // of rename() that's used is the POSIX one).  If none of the "major"
   596  // feature-test macros is defined, _NETBSD_SOURCE is assumed.
   597  //
   598  // There are also "minor" feature-test macros, which enable extra
   599  // functionality in addition to some base standard.  They should be
   600  // defined along with one of the "major" macros.  The "minor" macros
   601  // are:
   602  //
   603  // _REENTRANT
   604  // _ISOC99_SOURCE
   605  // _ISOC11_SOURCE
   606  // _LARGEFILE_SOURCE		Large File Support
   607  //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
   608  
   609  //	$NetBSD: int_types.h,v 1.17 2014/07/25 21:43:13 joerg Exp $
   610  
   611  // -
   612  // Copyright (c) 2014 The NetBSD Foundation, Inc.
   613  // All rights reserved.
   614  //
   615  // This code is derived from software contributed to The NetBSD Foundation
   616  // by Matt Thomas of 3am Software Foundry.
   617  //
   618  // Redistribution and use in source and binary forms, with or without
   619  // modification, are permitted provided that the following conditions
   620  // are met:
   621  // 1. Redistributions of source code must retain the above copyright
   622  //    notice, this list of conditions and the following disclaimer.
   623  // 2. Redistributions in binary form must reproduce the above copyright
   624  //    notice, this list of conditions and the following disclaimer in the
   625  //    documentation and/or other materials provided with the distribution.
   626  //
   627  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   628  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   629  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   630  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   631  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   632  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   633  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   634  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   635  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   636  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   637  // POSSIBILITY OF SUCH DAMAGE.
   638  
   639  //	$NetBSD: common_int_types.h,v 1.1 2014/07/25 21:43:13 joerg Exp $
   640  
   641  // -
   642  // Copyright (c) 2014 The NetBSD Foundation, Inc.
   643  // All rights reserved.
   644  //
   645  // This code is derived from software contributed to The NetBSD Foundation
   646  // by Joerg Sonnenberger.
   647  //
   648  // Redistribution and use in source and binary forms, with or without
   649  // modification, are permitted provided that the following conditions
   650  // are met:
   651  // 1. Redistributions of source code must retain the above copyright
   652  //    notice, this list of conditions and the following disclaimer.
   653  // 2. Redistributions in binary form must reproduce the above copyright
   654  //    notice, this list of conditions and the following disclaimer in the
   655  //    documentation and/or other materials provided with the distribution.
   656  //
   657  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   658  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   659  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   660  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   661  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   662  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   663  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   664  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   665  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   666  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   667  // POSSIBILITY OF SUCH DAMAGE.
   668  
   669  // 7.18.1 Integer types
   670  
   671  // 7.18.1.1 Exact-width integer types
   672  
   673  type X__int8_t = int8     /* common_int_types.h:45:27 */
   674  type X__uint8_t = uint8   /* common_int_types.h:46:27 */
   675  type X__int16_t = int16   /* common_int_types.h:47:27 */
   676  type X__uint16_t = uint16 /* common_int_types.h:48:27 */
   677  type X__int32_t = int32   /* common_int_types.h:49:27 */
   678  type X__uint32_t = uint32 /* common_int_types.h:50:27 */
   679  type X__int64_t = int64   /* common_int_types.h:51:27 */
   680  type X__uint64_t = uint64 /* common_int_types.h:52:27 */
   681  
   682  // 7.18.1.4 Integer types capable of holding object pointers
   683  
   684  type X__intptr_t = int32   /* common_int_types.h:58:27 */
   685  type X__uintptr_t = uint32 /* common_int_types.h:59:26 */
   686  
   687  type Uint8_t = X__uint8_t /* in.h:46:19 */
   688  
   689  type Uint32_t = X__uint32_t /* in.h:51:20 */
   690  
   691  // return true if value 'a' fits in type 't'
   692  
   693  //	$NetBSD: int_types.h,v 1.17 2014/07/25 21:43:13 joerg Exp $
   694  
   695  // -
   696  // Copyright (c) 2014 The NetBSD Foundation, Inc.
   697  // All rights reserved.
   698  //
   699  // This code is derived from software contributed to The NetBSD Foundation
   700  // by Matt Thomas of 3am Software Foundry.
   701  //
   702  // Redistribution and use in source and binary forms, with or without
   703  // modification, are permitted provided that the following conditions
   704  // are met:
   705  // 1. Redistributions of source code must retain the above copyright
   706  //    notice, this list of conditions and the following disclaimer.
   707  // 2. Redistributions in binary form must reproduce the above copyright
   708  //    notice, this list of conditions and the following disclaimer in the
   709  //    documentation and/or other materials provided with the distribution.
   710  //
   711  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   712  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   713  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   714  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   715  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   716  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   717  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   718  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   719  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   720  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   721  // POSSIBILITY OF SUCH DAMAGE.
   722  
   723  // Types which are fundamental to the implementation and may appear in
   724  // more than one standard header are defined here.  Standard headers
   725  // then use:
   726  //	#ifdef	_BSD_SIZE_T_
   727  //	typedef	_BSD_SIZE_T_ size_t;
   728  //	#undef	_BSD_SIZE_T_
   729  //	#endif
   730  
   731  type X__caddr_t = uintptr        /* ansi.h:37:14 */ // core address
   732  type X__gid_t = X__uint32_t      /* ansi.h:38:20 */ // group id
   733  type X__in_addr_t = X__uint32_t  /* ansi.h:39:20 */ // IP(v4) address
   734  type X__in_port_t = X__uint16_t  /* ansi.h:40:20 */ // "Internet" port number
   735  type X__mode_t = X__uint32_t     /* ansi.h:41:20 */ // file permissions
   736  type X__off_t = X__int64_t       /* ansi.h:42:19 */ // file offset
   737  type X__pid_t = X__int32_t       /* ansi.h:43:19 */ // process id
   738  type X__sa_family_t = X__uint8_t /* ansi.h:44:19 */ // socket address family
   739  type X__socklen_t = uint32       /* ansi.h:45:22 */ // socket-related datum length
   740  type X__uid_t = X__uint32_t      /* ansi.h:46:20 */ // user id
   741  type X__fsblkcnt_t = X__uint64_t /* ansi.h:47:20 */ // fs block count (statvfs)
   742  type X__fsfilcnt_t = X__uint64_t /* ansi.h:48:20 */
   743  type X__wctrans_t = uintptr      /* ansi.h:51:32 */
   744  type X__wctype_t = uintptr       /* ansi.h:54:31 */
   745  
   746  // mbstate_t is an opaque object to keep conversion state, during multibyte
   747  // stream conversions.  The content must not be referenced by user programs.
   748  type X__mbstate_t = struct {
   749  	F__mbstateL  X__int64_t
   750  	F__ccgo_pad1 [120]byte
   751  } /* ansi.h:63:3 */
   752  
   753  type X__va_list = X__builtin_va_list /* ansi.h:72:27 */
   754  
   755  type In_addr_t = X__in_addr_t /* in.h:58:21 */
   756  
   757  type In_port_t = X__in_port_t /* in.h:63:21 */
   758  
   759  type Sa_family_t = X__sa_family_t /* in.h:68:23 */
   760  
   761  // Protocols
   762  
   763  // last return value of *_input(), meaning "all job for this pkt is done".
   764  
   765  // sysctl placeholder for (FAST_)IPSEC
   766  
   767  // Local port number conventions:
   768  //
   769  // Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
   770  // unless a kernel is compiled with IPNOPRIVPORTS defined.
   771  //
   772  // When a user does a bind(2) or connect(2) with a port number of zero,
   773  // a non-conflicting local port address is chosen.
   774  //
   775  // The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
   776  // that is settable by sysctl(3); net.inet.ip.anonportmin and
   777  // net.inet.ip.anonportmax respectively.
   778  //
   779  // A user may set the IPPROTO_IP option IP_PORTRANGE to change this
   780  // default assignment range.
   781  //
   782  // The value IP_PORTRANGE_DEFAULT causes the default behavior.
   783  //
   784  // The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
   785  // and exists only for FreeBSD compatibility purposes.
   786  //
   787  // The value IP_PORTRANGE_LOW changes the range to the "low" are
   788  // that is (by convention) restricted to privileged processes.
   789  // This convention is based on "vouchsafe" principles only.
   790  // It is only secure if you trust the remote host to restrict these ports.
   791  // The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
   792  
   793  // Internet address (a structure for historical reasons)
   794  type In_addr = struct{ Fs_addr X__in_addr_t } /* in.h:158:1 */
   795  
   796  // Definitions of bits in internet address integers.
   797  // On subnets, the decomposition of addresses to host and net parts
   798  // is done according to subnet mask, not the masks here.
   799  //
   800  // By byte-swapping the constants, we avoid ever having to byte-swap IP
   801  // addresses inside the kernel.  Unfortunately, user-level programs rely
   802  // on these macros not doing byte-swapping.
   803  
   804  // These ones aren't really net and host fields, but routing needn't know.
   805  
   806  // Socket address, internet style.
   807  type Sockaddr_in = struct {
   808  	Fsin_len    Uint8_t
   809  	Fsin_family X__sa_family_t
   810  	Fsin_port   X__in_port_t
   811  	Fsin_addr   struct{ Fs_addr X__in_addr_t }
   812  	Fsin_zero   [8]X__int8_t
   813  } /* in.h:241:1 */
   814  
   815  // Structure used to describe IP options.
   816  // Used to store options internally, to pass them to a process,
   817  // or to restore options retrieved earlier.
   818  // The ip_dst is used for the first-hop gateway when using a source route
   819  // (this gets put into the header proper).
   820  type Ip_opts = struct {
   821  	Fip_dst  struct{ Fs_addr X__in_addr_t }
   822  	Fip_opts [40]X__int8_t
   823  } /* in.h:258:1 */
   824  
   825  // Options for use with [gs]etsockopt at the IP level.
   826  // First word of comment is data type; bool is stored in int.
   827  // The add and drop membership option numbers need to match with the v6 ones
   828  
   829  // Information sent in the control message of a datagram socket for
   830  // IP_PKTINFO and IP_RECVPKTINFO.
   831  type In_pktinfo = struct {
   832  	Fipi_addr    struct{ Fs_addr X__in_addr_t }
   833  	Fipi_ifindex uint32
   834  } /* in.h:301:1 */
   835  
   836  // Defaults and limits for options
   837  
   838  // Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
   839  type Ip_mreq = struct {
   840  	Fimr_multiaddr struct{ Fs_addr X__in_addr_t }
   841  	Fimr_interface struct{ Fs_addr X__in_addr_t }
   842  } /* in.h:318:1 */
   843  
   844  // Argument for IP_PORTRANGE:
   845  // - which range to search when port is unspecified at bind() or connect()
   846  
   847  // Definitions for inet sysctl operations.
   848  //
   849  // Third level is protocol number.
   850  // Fourth level is desired variable within that protocol.
   851  
   852  // Names for IP sysctl objects
   853  // IPCTL_DEFMTU=4, never implemented
   854  
   855  // INET6 stuff
   856  //	$NetBSD: in6.h,v 1.95.2.1 2019/09/06 19:43:00 martin Exp $
   857  //	$KAME: in6.h,v 1.83 2001/03/29 02:55:07 jinmei Exp $
   858  
   859  // Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
   860  // All rights reserved.
   861  //
   862  // Redistribution and use in source and binary forms, with or without
   863  // modification, are permitted provided that the following conditions
   864  // are met:
   865  // 1. Redistributions of source code must retain the above copyright
   866  //    notice, this list of conditions and the following disclaimer.
   867  // 2. Redistributions in binary form must reproduce the above copyright
   868  //    notice, this list of conditions and the following disclaimer in the
   869  //    documentation and/or other materials provided with the distribution.
   870  // 3. Neither the name of the project nor the names of its contributors
   871  //    may be used to endorse or promote products derived from this software
   872  //    without specific prior written permission.
   873  //
   874  // THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
   875  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   876  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   877  // ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
   878  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   879  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   880  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   881  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   882  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   883  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   884  // SUCH DAMAGE.
   885  
   886  // Copyright (c) 1982, 1986, 1990, 1993
   887  //	The Regents of the University of California.  All rights reserved.
   888  //
   889  // Redistribution and use in source and binary forms, with or without
   890  // modification, are permitted provided that the following conditions
   891  // are met:
   892  // 1. Redistributions of source code must retain the above copyright
   893  //    notice, this list of conditions and the following disclaimer.
   894  // 2. Redistributions in binary form must reproduce the above copyright
   895  //    notice, this list of conditions and the following disclaimer in the
   896  //    documentation and/or other materials provided with the distribution.
   897  // 3. Neither the name of the University nor the names of its contributors
   898  //    may be used to endorse or promote products derived from this software
   899  //    without specific prior written permission.
   900  //
   901  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   902  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   903  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   904  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   905  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   906  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   907  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   908  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   909  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   910  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   911  // SUCH DAMAGE.
   912  //
   913  //	@(#)in.h	8.3 (Berkeley) 1/3/94
   914  
   915  //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
   916  
   917  // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
   918  // Public domain.
   919  //
   920  // NOTE: Do not protect this header against multiple inclusion.  Doing
   921  // so can have subtle side-effects due to header file inclusion order
   922  // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
   923  // protect each CPP macro that we want to supply.
   924  
   925  // Feature-test macros are defined by several standards, and allow an
   926  // application to specify what symbols they want the system headers to
   927  // expose, and hence what standard they want them to conform to.
   928  // There are two classes of feature-test macros.  The first class
   929  // specify complete standards, and if one of these is defined, header
   930  // files will try to conform to the relevant standard.  They are:
   931  //
   932  // ANSI macros:
   933  // _ANSI_SOURCE			ANSI C89
   934  //
   935  // POSIX macros:
   936  // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
   937  // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
   938  // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
   939  // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
   940  // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
   941  // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
   942  // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
   943  //
   944  // X/Open macros:
   945  // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
   946  // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
   947  // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
   948  // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
   949  // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
   950  // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
   951  //
   952  // NetBSD macros:
   953  // _NETBSD_SOURCE == 1		Make all NetBSD features available.
   954  //
   955  // If more than one of these "major" feature-test macros is defined,
   956  // then the set of facilities provided (and namespace used) is the
   957  // union of that specified by the relevant standards, and in case of
   958  // conflict, the earlier standard in the above list has precedence (so
   959  // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
   960  // of rename() that's used is the POSIX one).  If none of the "major"
   961  // feature-test macros is defined, _NETBSD_SOURCE is assumed.
   962  //
   963  // There are also "minor" feature-test macros, which enable extra
   964  // functionality in addition to some base standard.  They should be
   965  // defined along with one of the "major" macros.  The "minor" macros
   966  // are:
   967  //
   968  // _REENTRANT
   969  // _ISOC99_SOURCE
   970  // _ISOC11_SOURCE
   971  // _LARGEFILE_SOURCE		Large File Support
   972  //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
   973  
   974  //	$NetBSD: socket.h,v 1.129 2018/11/04 16:30:29 christos Exp $
   975  
   976  // Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
   977  // All rights reserved.
   978  //
   979  // Redistribution and use in source and binary forms, with or without
   980  // modification, are permitted provided that the following conditions
   981  // are met:
   982  // 1. Redistributions of source code must retain the above copyright
   983  //    notice, this list of conditions and the following disclaimer.
   984  // 2. Redistributions in binary form must reproduce the above copyright
   985  //    notice, this list of conditions and the following disclaimer in the
   986  //    documentation and/or other materials provided with the distribution.
   987  // 3. Neither the name of the project nor the names of its contributors
   988  //    may be used to endorse or promote products derived from this software
   989  //    without specific prior written permission.
   990  //
   991  // THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
   992  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   993  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   994  // ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
   995  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   996  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   997  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   998  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   999  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1000  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1001  // SUCH DAMAGE.
  1002  
  1003  // Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994
  1004  //	The Regents of the University of California.  All rights reserved.
  1005  //
  1006  // Redistribution and use in source and binary forms, with or without
  1007  // modification, are permitted provided that the following conditions
  1008  // are met:
  1009  // 1. Redistributions of source code must retain the above copyright
  1010  //    notice, this list of conditions and the following disclaimer.
  1011  // 2. Redistributions in binary form must reproduce the above copyright
  1012  //    notice, this list of conditions and the following disclaimer in the
  1013  //    documentation and/or other materials provided with the distribution.
  1014  // 3. Neither the name of the University nor the names of its contributors
  1015  //    may be used to endorse or promote products derived from this software
  1016  //    without specific prior written permission.
  1017  //
  1018  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  1019  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1020  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  1021  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  1022  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  1023  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  1024  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  1025  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  1026  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1027  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1028  // SUCH DAMAGE.
  1029  //
  1030  //	@(#)socket.h	8.6 (Berkeley) 5/3/95
  1031  
  1032  //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
  1033  
  1034  // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
  1035  // Public domain.
  1036  //
  1037  // NOTE: Do not protect this header against multiple inclusion.  Doing
  1038  // so can have subtle side-effects due to header file inclusion order
  1039  // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
  1040  // protect each CPP macro that we want to supply.
  1041  
  1042  // Feature-test macros are defined by several standards, and allow an
  1043  // application to specify what symbols they want the system headers to
  1044  // expose, and hence what standard they want them to conform to.
  1045  // There are two classes of feature-test macros.  The first class
  1046  // specify complete standards, and if one of these is defined, header
  1047  // files will try to conform to the relevant standard.  They are:
  1048  //
  1049  // ANSI macros:
  1050  // _ANSI_SOURCE			ANSI C89
  1051  //
  1052  // POSIX macros:
  1053  // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
  1054  // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
  1055  // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
  1056  // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
  1057  // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
  1058  // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
  1059  // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
  1060  //
  1061  // X/Open macros:
  1062  // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
  1063  // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
  1064  // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
  1065  // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
  1066  // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
  1067  // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
  1068  //
  1069  // NetBSD macros:
  1070  // _NETBSD_SOURCE == 1		Make all NetBSD features available.
  1071  //
  1072  // If more than one of these "major" feature-test macros is defined,
  1073  // then the set of facilities provided (and namespace used) is the
  1074  // union of that specified by the relevant standards, and in case of
  1075  // conflict, the earlier standard in the above list has precedence (so
  1076  // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
  1077  // of rename() that's used is the POSIX one).  If none of the "major"
  1078  // feature-test macros is defined, _NETBSD_SOURCE is assumed.
  1079  //
  1080  // There are also "minor" feature-test macros, which enable extra
  1081  // functionality in addition to some base standard.  They should be
  1082  // defined along with one of the "major" macros.  The "minor" macros
  1083  // are:
  1084  //
  1085  // _REENTRANT
  1086  // _ISOC99_SOURCE
  1087  // _ISOC11_SOURCE
  1088  // _LARGEFILE_SOURCE		Large File Support
  1089  //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
  1090  
  1091  // Definitions related to sockets: types, address families, options.
  1092  
  1093  // Data types.
  1094  //	$NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
  1095  
  1096  // -
  1097  // Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
  1098  // All rights reserved.
  1099  //
  1100  // This code is derived from software contributed to The NetBSD Foundation
  1101  // by Jun-ichiro itojun Hagino and by Klaus Klein.
  1102  //
  1103  // Redistribution and use in source and binary forms, with or without
  1104  // modification, are permitted provided that the following conditions
  1105  // are met:
  1106  // 1. Redistributions of source code must retain the above copyright
  1107  //    notice, this list of conditions and the following disclaimer.
  1108  // 2. Redistributions in binary form must reproduce the above copyright
  1109  //    notice, this list of conditions and the following disclaimer in the
  1110  //    documentation and/or other materials provided with the distribution.
  1111  //
  1112  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  1113  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  1114  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  1115  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  1116  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  1117  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  1118  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  1119  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  1120  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  1121  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  1122  // POSSIBILITY OF SUCH DAMAGE.
  1123  
  1124  type Socklen_t = X__socklen_t /* socket.h:83:21 */
  1125  
  1126  type Ssize_t = int32 /* socket.h:95:23 */
  1127  
  1128  //	$NetBSD: uio.h,v 1.36 2011/07/27 13:20:07 uebayasi Exp $
  1129  
  1130  // Copyright (c) 1982, 1986, 1993, 1994
  1131  //	The Regents of the University of California.  All rights reserved.
  1132  //
  1133  // Redistribution and use in source and binary forms, with or without
  1134  // modification, are permitted provided that the following conditions
  1135  // are met:
  1136  // 1. Redistributions of source code must retain the above copyright
  1137  //    notice, this list of conditions and the following disclaimer.
  1138  // 2. Redistributions in binary form must reproduce the above copyright
  1139  //    notice, this list of conditions and the following disclaimer in the
  1140  //    documentation and/or other materials provided with the distribution.
  1141  // 3. Neither the name of the University nor the names of its contributors
  1142  //    may be used to endorse or promote products derived from this software
  1143  //    without specific prior written permission.
  1144  //
  1145  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  1146  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1147  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  1148  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  1149  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  1150  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  1151  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  1152  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  1153  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1154  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1155  // SUCH DAMAGE.
  1156  //
  1157  //	@(#)uio.h	8.5 (Berkeley) 2/22/94
  1158  
  1159  //	$NetBSD: ansi.h,v 1.18 2019/05/07 03:49:26 kamil Exp $
  1160  
  1161  //	$NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
  1162  
  1163  // -
  1164  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  1165  // All rights reserved.
  1166  //
  1167  // This code is derived from software contributed to The NetBSD Foundation
  1168  // by Matt Thomas of 3am Software Foundry.
  1169  //
  1170  // Redistribution and use in source and binary forms, with or without
  1171  // modification, are permitted provided that the following conditions
  1172  // are met:
  1173  // 1. Redistributions of source code must retain the above copyright
  1174  //    notice, this list of conditions and the following disclaimer.
  1175  // 2. Redistributions in binary form must reproduce the above copyright
  1176  //    notice, this list of conditions and the following disclaimer in the
  1177  //    documentation and/or other materials provided with the distribution.
  1178  //
  1179  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  1180  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  1181  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  1182  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  1183  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  1184  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  1185  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  1186  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  1187  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  1188  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  1189  // POSSIBILITY OF SUCH DAMAGE.
  1190  
  1191  //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
  1192  
  1193  // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
  1194  // Public domain.
  1195  //
  1196  // NOTE: Do not protect this header against multiple inclusion.  Doing
  1197  // so can have subtle side-effects due to header file inclusion order
  1198  // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
  1199  // protect each CPP macro that we want to supply.
  1200  
  1201  // Feature-test macros are defined by several standards, and allow an
  1202  // application to specify what symbols they want the system headers to
  1203  // expose, and hence what standard they want them to conform to.
  1204  // There are two classes of feature-test macros.  The first class
  1205  // specify complete standards, and if one of these is defined, header
  1206  // files will try to conform to the relevant standard.  They are:
  1207  //
  1208  // ANSI macros:
  1209  // _ANSI_SOURCE			ANSI C89
  1210  //
  1211  // POSIX macros:
  1212  // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
  1213  // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
  1214  // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
  1215  // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
  1216  // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
  1217  // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
  1218  // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
  1219  //
  1220  // X/Open macros:
  1221  // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
  1222  // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
  1223  // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
  1224  // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
  1225  // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
  1226  // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
  1227  //
  1228  // NetBSD macros:
  1229  // _NETBSD_SOURCE == 1		Make all NetBSD features available.
  1230  //
  1231  // If more than one of these "major" feature-test macros is defined,
  1232  // then the set of facilities provided (and namespace used) is the
  1233  // union of that specified by the relevant standards, and in case of
  1234  // conflict, the earlier standard in the above list has precedence (so
  1235  // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
  1236  // of rename() that's used is the POSIX one).  If none of the "major"
  1237  // feature-test macros is defined, _NETBSD_SOURCE is assumed.
  1238  //
  1239  // There are also "minor" feature-test macros, which enable extra
  1240  // functionality in addition to some base standard.  They should be
  1241  // defined along with one of the "major" macros.  The "minor" macros
  1242  // are:
  1243  //
  1244  // _REENTRANT
  1245  // _ISOC99_SOURCE
  1246  // _ISOC11_SOURCE
  1247  // _LARGEFILE_SOURCE		Large File Support
  1248  //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
  1249  
  1250  type Iovec = struct {
  1251  	Fiov_base uintptr
  1252  	Fiov_len  Size_t
  1253  } /* uio.h:56:1 */
  1254  
  1255  //	$NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
  1256  
  1257  // -
  1258  // Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
  1259  // All rights reserved.
  1260  //
  1261  // This code is derived from software contributed to The NetBSD Foundation
  1262  // by Jun-ichiro itojun Hagino and by Klaus Klein.
  1263  //
  1264  // Redistribution and use in source and binary forms, with or without
  1265  // modification, are permitted provided that the following conditions
  1266  // are met:
  1267  // 1. Redistributions of source code must retain the above copyright
  1268  //    notice, this list of conditions and the following disclaimer.
  1269  // 2. Redistributions in binary form must reproduce the above copyright
  1270  //    notice, this list of conditions and the following disclaimer in the
  1271  //    documentation and/or other materials provided with the distribution.
  1272  //
  1273  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  1274  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  1275  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  1276  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  1277  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  1278  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  1279  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  1280  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  1281  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  1282  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  1283  // POSSIBILITY OF SUCH DAMAGE.
  1284  
  1285  type Off_t = X__off_t /* uio.h:65:18 */
  1286  
  1287  //	$NetBSD: sigtypes.h,v 1.11 2017/01/12 18:29:14 christos Exp $
  1288  
  1289  // Copyright (c) 1982, 1986, 1989, 1991, 1993
  1290  //	The Regents of the University of California.  All rights reserved.
  1291  // (c) UNIX System Laboratories, Inc.
  1292  // All or some portions of this file are derived from material licensed
  1293  // to the University of California by American Telephone and Telegraph
  1294  // Co. or Unix System Laboratories, Inc. and are reproduced herein with
  1295  // the permission of UNIX System Laboratories, Inc.
  1296  //
  1297  // Redistribution and use in source and binary forms, with or without
  1298  // modification, are permitted provided that the following conditions
  1299  // are met:
  1300  // 1. Redistributions of source code must retain the above copyright
  1301  //    notice, this list of conditions and the following disclaimer.
  1302  // 2. Redistributions in binary form must reproduce the above copyright
  1303  //    notice, this list of conditions and the following disclaimer in the
  1304  //    documentation and/or other materials provided with the distribution.
  1305  // 3. Neither the name of the University nor the names of its contributors
  1306  //    may be used to endorse or promote products derived from this software
  1307  //    without specific prior written permission.
  1308  //
  1309  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  1310  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1311  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  1312  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  1313  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  1314  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  1315  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  1316  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  1317  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1318  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1319  // SUCH DAMAGE.
  1320  //
  1321  //	@(#)signal.h	8.4 (Berkeley) 5/4/95
  1322  
  1323  // This header file defines various signal-related types.  We also keep
  1324  // the macros to manipulate sigset_t here, to encapsulate knowledge of
  1325  // its internals.
  1326  
  1327  //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
  1328  
  1329  // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
  1330  // Public domain.
  1331  //
  1332  // NOTE: Do not protect this header against multiple inclusion.  Doing
  1333  // so can have subtle side-effects due to header file inclusion order
  1334  // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
  1335  // protect each CPP macro that we want to supply.
  1336  
  1337  // Feature-test macros are defined by several standards, and allow an
  1338  // application to specify what symbols they want the system headers to
  1339  // expose, and hence what standard they want them to conform to.
  1340  // There are two classes of feature-test macros.  The first class
  1341  // specify complete standards, and if one of these is defined, header
  1342  // files will try to conform to the relevant standard.  They are:
  1343  //
  1344  // ANSI macros:
  1345  // _ANSI_SOURCE			ANSI C89
  1346  //
  1347  // POSIX macros:
  1348  // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
  1349  // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
  1350  // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
  1351  // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
  1352  // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
  1353  // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
  1354  // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
  1355  //
  1356  // X/Open macros:
  1357  // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
  1358  // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
  1359  // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
  1360  // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
  1361  // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
  1362  // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
  1363  //
  1364  // NetBSD macros:
  1365  // _NETBSD_SOURCE == 1		Make all NetBSD features available.
  1366  //
  1367  // If more than one of these "major" feature-test macros is defined,
  1368  // then the set of facilities provided (and namespace used) is the
  1369  // union of that specified by the relevant standards, and in case of
  1370  // conflict, the earlier standard in the above list has precedence (so
  1371  // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
  1372  // of rename() that's used is the POSIX one).  If none of the "major"
  1373  // feature-test macros is defined, _NETBSD_SOURCE is assumed.
  1374  //
  1375  // There are also "minor" feature-test macros, which enable extra
  1376  // functionality in addition to some base standard.  They should be
  1377  // defined along with one of the "major" macros.  The "minor" macros
  1378  // are:
  1379  //
  1380  // _REENTRANT
  1381  // _ISOC99_SOURCE
  1382  // _ISOC11_SOURCE
  1383  // _LARGEFILE_SOURCE		Large File Support
  1384  //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
  1385  
  1386  //	$NetBSD: int_types.h,v 1.17 2014/07/25 21:43:13 joerg Exp $
  1387  
  1388  // -
  1389  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  1390  // All rights reserved.
  1391  //
  1392  // This code is derived from software contributed to The NetBSD Foundation
  1393  // by Matt Thomas of 3am Software Foundry.
  1394  //
  1395  // Redistribution and use in source and binary forms, with or without
  1396  // modification, are permitted provided that the following conditions
  1397  // are met:
  1398  // 1. Redistributions of source code must retain the above copyright
  1399  //    notice, this list of conditions and the following disclaimer.
  1400  // 2. Redistributions in binary form must reproduce the above copyright
  1401  //    notice, this list of conditions and the following disclaimer in the
  1402  //    documentation and/or other materials provided with the distribution.
  1403  //
  1404  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  1405  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  1406  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  1407  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  1408  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  1409  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  1410  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  1411  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  1412  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  1413  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  1414  // POSSIBILITY OF SUCH DAMAGE.
  1415  
  1416  //	$NetBSD: ansi.h,v 1.18 2019/05/07 03:49:26 kamil Exp $
  1417  
  1418  //	$NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
  1419  
  1420  // -
  1421  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  1422  // All rights reserved.
  1423  //
  1424  // This code is derived from software contributed to The NetBSD Foundation
  1425  // by Matt Thomas of 3am Software Foundry.
  1426  //
  1427  // Redistribution and use in source and binary forms, with or without
  1428  // modification, are permitted provided that the following conditions
  1429  // are met:
  1430  // 1. Redistributions of source code must retain the above copyright
  1431  //    notice, this list of conditions and the following disclaimer.
  1432  // 2. Redistributions in binary form must reproduce the above copyright
  1433  //    notice, this list of conditions and the following disclaimer in the
  1434  //    documentation and/or other materials provided with the distribution.
  1435  //
  1436  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  1437  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  1438  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  1439  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  1440  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  1441  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  1442  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  1443  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  1444  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  1445  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  1446  // POSSIBILITY OF SUCH DAMAGE.
  1447  
  1448  type Sigset_t = struct{ F__bits [4]X__uint32_t } /* sigtypes.h:62:3 */
  1449  
  1450  // Macro for manipulating signal masks.
  1451  
  1452  type Sigaltstack = struct {
  1453  	Fss_sp    uintptr
  1454  	Fss_size  Size_t
  1455  	Fss_flags int32
  1456  } /* sigtypes.h:108:9 */
  1457  
  1458  // Macro for manipulating signal masks.
  1459  
  1460  type Stack_t = Sigaltstack /* sigtypes.h:116:3 */
  1461  
  1462  // Socket types.
  1463  
  1464  // Option flags per-socket.
  1465  // 	SO_OTIMESTAMP	0x0400
  1466  
  1467  // Allowed default option flags
  1468  
  1469  // Additional options, not kept in so_options.
  1470  // SO_OSNDTIMEO		0x1005
  1471  // SO_ORCVTIMEO		0x1006
  1472  
  1473  // Structure used for manipulating linger option.
  1474  type Linger = struct {
  1475  	Fl_onoff  int32
  1476  	Fl_linger int32
  1477  } /* socket.h:182:1 */
  1478  
  1479  type Accept_filter_arg = struct {
  1480  	Faf_name [16]uint8
  1481  	Faf_arg  [240]uint8
  1482  } /* socket.h:187:1 */
  1483  
  1484  // Level number for (get/set)sockopt() to apply to socket itself.
  1485  
  1486  // Address families.
  1487  
  1488  // Structure used by kernel to store most
  1489  // addresses.
  1490  type Sockaddr = struct {
  1491  	Fsa_len    X__uint8_t
  1492  	Fsa_family X__sa_family_t
  1493  	Fsa_data   [14]uint8
  1494  } /* socket.h:255:1 */
  1495  
  1496  // RFC 2553: protocol-independent placeholder for socket addresses
  1497  
  1498  type Sockaddr_storage = struct {
  1499  	Fss_len     X__uint8_t
  1500  	Fss_family  X__sa_family_t
  1501  	F__ss_pad1  [6]uint8
  1502  	F__ss_align X__int64_t
  1503  	F__ss_pad2  [112]uint8
  1504  } /* socket.h:301:1 */
  1505  
  1506  // Protocol families, same as address families for now.
  1507  
  1508  type Pid_t = X__pid_t /* socket.h:366:18 */ // process id
  1509  
  1510  type Gid_t = X__gid_t /* socket.h:371:18 */ // group id
  1511  
  1512  type Uid_t = X__uid_t /* socket.h:376:18 */ // user id
  1513  
  1514  // Socket credentials.
  1515  type Sockcred = struct {
  1516  	Fsc_pid     X__pid_t
  1517  	Fsc_uid     X__uid_t
  1518  	Fsc_euid    X__uid_t
  1519  	Fsc_gid     X__gid_t
  1520  	Fsc_egid    X__gid_t
  1521  	Fsc_ngroups int32
  1522  	Fsc_groups  [1]X__gid_t
  1523  } /* socket.h:383:1 */
  1524  
  1525  // Compute size of a sockcred structure with groups.
  1526  
  1527  // Definition for CTL_NET PCB fetching sysctls
  1528  type Kinfo_pcb = struct {
  1529  	Fki_pcbaddr  X__uint64_t
  1530  	Fki_ppcbaddr X__uint64_t
  1531  	Fki_sockaddr X__uint64_t
  1532  	Fki_family   X__uint32_t
  1533  	Fki_type     X__uint32_t
  1534  	Fki_protocol X__uint32_t
  1535  	Fki_pflags   X__uint32_t
  1536  	Fki_sostate  X__uint32_t
  1537  	Fki_prstate  X__uint32_t
  1538  	Fki_tstate   X__int32_t
  1539  	Fki_tflags   X__uint32_t
  1540  	Fki_rcvq     X__uint64_t
  1541  	Fki_sndq     X__uint64_t
  1542  	Fki_s        struct {
  1543  		F_kis_src struct {
  1544  			Fsa_len    X__uint8_t
  1545  			Fsa_family X__sa_family_t
  1546  			Fsa_data   [14]uint8
  1547  		}
  1548  		F__ccgo_pad1 [248]byte
  1549  	}
  1550  	Fki_d struct {
  1551  		F_kid_dst struct {
  1552  			Fsa_len    X__uint8_t
  1553  			Fsa_family X__sa_family_t
  1554  			Fsa_data   [14]uint8
  1555  		}
  1556  		F__ccgo_pad1 [248]byte
  1557  	}
  1558  	Fki_inode   X__uint64_t
  1559  	Fki_vnode   X__uint64_t
  1560  	Fki_conn    X__uint64_t
  1561  	Fki_refs    X__uint64_t
  1562  	Fki_nextref X__uint64_t
  1563  } /* socket.h:404:1 */
  1564  
  1565  // PF_ROUTE - Routing table
  1566  //
  1567  // Three additional levels are defined:
  1568  //	Fourth: address family, 0 is wildcard
  1569  //	Fifth: type of info, defined below
  1570  //	Sixth: flag(s) to mask with for NET_RT_FLAGS
  1571  
  1572  // Maximum queue length specifiable by listen(2).
  1573  
  1574  //	$NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
  1575  
  1576  // * Copyright (c) 1991, 1993
  1577  //	The Regents of the University of California.  All rights reserved.
  1578  //
  1579  // This code is derived from software contributed to Berkeley by
  1580  // Berkeley Software Design, Inc.
  1581  //
  1582  // Redistribution and use in source and binary forms, with or without
  1583  // modification, are permitted provided that the following conditions
  1584  // are met:
  1585  // 1. Redistributions of source code must retain the above copyright
  1586  //    notice, this list of conditions and the following disclaimer.
  1587  // 2. Redistributions in binary form must reproduce the above copyright
  1588  //    notice, this list of conditions and the following disclaimer in the
  1589  //    documentation and/or other materials provided with the distribution.
  1590  // 3. Neither the name of the University nor the names of its contributors
  1591  //    may be used to endorse or promote products derived from this software
  1592  //    without specific prior written permission.
  1593  //
  1594  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  1595  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1596  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  1597  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  1598  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  1599  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  1600  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  1601  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  1602  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1603  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1604  // SUCH DAMAGE.
  1605  //
  1606  //	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
  1607  
  1608  // Message header for recvmsg and sendmsg calls.
  1609  // Used value-result for recvmsg, value only for sendmsg.
  1610  type Msghdr = struct {
  1611  	Fmsg_name       uintptr
  1612  	Fmsg_namelen    X__socklen_t
  1613  	Fmsg_iov        uintptr
  1614  	Fmsg_iovlen     int32
  1615  	Fmsg_control    uintptr
  1616  	Fmsg_controllen X__socklen_t
  1617  	Fmsg_flags      int32
  1618  } /* socket.h:479:1 */
  1619  
  1620  type Mmsghdr = struct {
  1621  	Fmsg_hdr struct {
  1622  		Fmsg_name       uintptr
  1623  		Fmsg_namelen    X__socklen_t
  1624  		Fmsg_iov        uintptr
  1625  		Fmsg_iovlen     int32
  1626  		Fmsg_control    uintptr
  1627  		Fmsg_controllen X__socklen_t
  1628  		Fmsg_flags      int32
  1629  	}
  1630  	Fmsg_len uint32
  1631  } /* socket.h:506:1 */
  1632  
  1633  // Extra flags used internally only
  1634  
  1635  // Header for ancillary data objects in msg_control buffer.
  1636  // Used for additional information with/about a datagram
  1637  // not expressible by flags.  The format is a sequence
  1638  // of message elements headed by cmsghdr structures.
  1639  type Cmsghdr = struct {
  1640  	Fcmsg_len   X__socklen_t
  1641  	Fcmsg_level int32
  1642  	Fcmsg_type  int32
  1643  } /* socket.h:525:1 */
  1644  
  1645  //	$NetBSD: endian.h,v 1.30 2016/02/27 21:37:35 christos Exp $
  1646  
  1647  // Copyright (c) 1987, 1991, 1993
  1648  //	The Regents of the University of California.  All rights reserved.
  1649  //
  1650  // Redistribution and use in source and binary forms, with or without
  1651  // modification, are permitted provided that the following conditions
  1652  // are met:
  1653  // 1. Redistributions of source code must retain the above copyright
  1654  //    notice, this list of conditions and the following disclaimer.
  1655  // 2. Redistributions in binary form must reproduce the above copyright
  1656  //    notice, this list of conditions and the following disclaimer in the
  1657  //    documentation and/or other materials provided with the distribution.
  1658  // 3. Neither the name of the University nor the names of its contributors
  1659  //    may be used to endorse or promote products derived from this software
  1660  //    without specific prior written permission.
  1661  //
  1662  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  1663  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1664  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  1665  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  1666  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  1667  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  1668  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  1669  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  1670  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1671  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1672  // SUCH DAMAGE.
  1673  //
  1674  //	@(#)endian.h	8.1 (Berkeley) 6/11/93
  1675  
  1676  //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
  1677  
  1678  // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
  1679  // Public domain.
  1680  //
  1681  // NOTE: Do not protect this header against multiple inclusion.  Doing
  1682  // so can have subtle side-effects due to header file inclusion order
  1683  // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
  1684  // protect each CPP macro that we want to supply.
  1685  
  1686  // Feature-test macros are defined by several standards, and allow an
  1687  // application to specify what symbols they want the system headers to
  1688  // expose, and hence what standard they want them to conform to.
  1689  // There are two classes of feature-test macros.  The first class
  1690  // specify complete standards, and if one of these is defined, header
  1691  // files will try to conform to the relevant standard.  They are:
  1692  //
  1693  // ANSI macros:
  1694  // _ANSI_SOURCE			ANSI C89
  1695  //
  1696  // POSIX macros:
  1697  // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
  1698  // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
  1699  // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
  1700  // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
  1701  // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
  1702  // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
  1703  // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
  1704  //
  1705  // X/Open macros:
  1706  // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
  1707  // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
  1708  // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
  1709  // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
  1710  // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
  1711  // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
  1712  //
  1713  // NetBSD macros:
  1714  // _NETBSD_SOURCE == 1		Make all NetBSD features available.
  1715  //
  1716  // If more than one of these "major" feature-test macros is defined,
  1717  // then the set of facilities provided (and namespace used) is the
  1718  // union of that specified by the relevant standards, and in case of
  1719  // conflict, the earlier standard in the above list has precedence (so
  1720  // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
  1721  // of rename() that's used is the POSIX one).  If none of the "major"
  1722  // feature-test macros is defined, _NETBSD_SOURCE is assumed.
  1723  //
  1724  // There are also "minor" feature-test macros, which enable extra
  1725  // functionality in addition to some base standard.  They should be
  1726  // defined along with one of the "major" macros.  The "minor" macros
  1727  // are:
  1728  //
  1729  // _REENTRANT
  1730  // _ISOC99_SOURCE
  1731  // _ISOC11_SOURCE
  1732  // _LARGEFILE_SOURCE		Large File Support
  1733  //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
  1734  
  1735  // Definitions for byte order, according to byte significance from low
  1736  // address to high.
  1737  
  1738  // C-family endian-ness definitions
  1739  
  1740  //	$NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
  1741  
  1742  // -
  1743  // Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
  1744  // All rights reserved.
  1745  //
  1746  // This code is derived from software contributed to The NetBSD Foundation
  1747  // by Jun-ichiro itojun Hagino and by Klaus Klein.
  1748  //
  1749  // Redistribution and use in source and binary forms, with or without
  1750  // modification, are permitted provided that the following conditions
  1751  // are met:
  1752  // 1. Redistributions of source code must retain the above copyright
  1753  //    notice, this list of conditions and the following disclaimer.
  1754  // 2. Redistributions in binary form must reproduce the above copyright
  1755  //    notice, this list of conditions and the following disclaimer in the
  1756  //    documentation and/or other materials provided with the distribution.
  1757  //
  1758  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  1759  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  1760  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  1761  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  1762  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  1763  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  1764  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  1765  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  1766  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  1767  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  1768  // POSSIBILITY OF SUCH DAMAGE.
  1769  
  1770  //	$NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
  1771  
  1772  // * Copyright (c) 1991, 1993
  1773  //	The Regents of the University of California.  All rights reserved.
  1774  //
  1775  // This code is derived from software contributed to Berkeley by
  1776  // Berkeley Software Design, Inc.
  1777  //
  1778  // Redistribution and use in source and binary forms, with or without
  1779  // modification, are permitted provided that the following conditions
  1780  // are met:
  1781  // 1. Redistributions of source code must retain the above copyright
  1782  //    notice, this list of conditions and the following disclaimer.
  1783  // 2. Redistributions in binary form must reproduce the above copyright
  1784  //    notice, this list of conditions and the following disclaimer in the
  1785  //    documentation and/or other materials provided with the distribution.
  1786  // 3. Neither the name of the University nor the names of its contributors
  1787  //    may be used to endorse or promote products derived from this software
  1788  //    without specific prior written permission.
  1789  //
  1790  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  1791  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1792  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  1793  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  1794  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  1795  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  1796  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  1797  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  1798  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1799  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1800  // SUCH DAMAGE.
  1801  //
  1802  //	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
  1803  
  1804  //	$NetBSD: types.h,v 1.102 2018/11/06 16:26:44 maya Exp $
  1805  
  1806  // -
  1807  // Copyright (c) 1982, 1986, 1991, 1993, 1994
  1808  //	The Regents of the University of California.  All rights reserved.
  1809  // (c) UNIX System Laboratories, Inc.
  1810  // All or some portions of this file are derived from material licensed
  1811  // to the University of California by American Telephone and Telegraph
  1812  // Co. or Unix System Laboratories, Inc. and are reproduced herein with
  1813  // the permission of UNIX System Laboratories, Inc.
  1814  //
  1815  // Redistribution and use in source and binary forms, with or without
  1816  // modification, are permitted provided that the following conditions
  1817  // are met:
  1818  // 1. Redistributions of source code must retain the above copyright
  1819  //    notice, this list of conditions and the following disclaimer.
  1820  // 2. Redistributions in binary form must reproduce the above copyright
  1821  //    notice, this list of conditions and the following disclaimer in the
  1822  //    documentation and/or other materials provided with the distribution.
  1823  // 3. Neither the name of the University nor the names of its contributors
  1824  //    may be used to endorse or promote products derived from this software
  1825  //    without specific prior written permission.
  1826  //
  1827  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  1828  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1829  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  1830  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  1831  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  1832  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  1833  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  1834  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  1835  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1836  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1837  // SUCH DAMAGE.
  1838  //
  1839  //	@(#)types.h	8.4 (Berkeley) 1/21/94
  1840  
  1841  //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
  1842  
  1843  // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
  1844  // Public domain.
  1845  //
  1846  // NOTE: Do not protect this header against multiple inclusion.  Doing
  1847  // so can have subtle side-effects due to header file inclusion order
  1848  // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
  1849  // protect each CPP macro that we want to supply.
  1850  
  1851  // Feature-test macros are defined by several standards, and allow an
  1852  // application to specify what symbols they want the system headers to
  1853  // expose, and hence what standard they want them to conform to.
  1854  // There are two classes of feature-test macros.  The first class
  1855  // specify complete standards, and if one of these is defined, header
  1856  // files will try to conform to the relevant standard.  They are:
  1857  //
  1858  // ANSI macros:
  1859  // _ANSI_SOURCE			ANSI C89
  1860  //
  1861  // POSIX macros:
  1862  // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
  1863  // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
  1864  // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
  1865  // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
  1866  // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
  1867  // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
  1868  // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
  1869  //
  1870  // X/Open macros:
  1871  // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
  1872  // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
  1873  // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
  1874  // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
  1875  // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
  1876  // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
  1877  //
  1878  // NetBSD macros:
  1879  // _NETBSD_SOURCE == 1		Make all NetBSD features available.
  1880  //
  1881  // If more than one of these "major" feature-test macros is defined,
  1882  // then the set of facilities provided (and namespace used) is the
  1883  // union of that specified by the relevant standards, and in case of
  1884  // conflict, the earlier standard in the above list has precedence (so
  1885  // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
  1886  // of rename() that's used is the POSIX one).  If none of the "major"
  1887  // feature-test macros is defined, _NETBSD_SOURCE is assumed.
  1888  //
  1889  // There are also "minor" feature-test macros, which enable extra
  1890  // functionality in addition to some base standard.  They should be
  1891  // defined along with one of the "major" macros.  The "minor" macros
  1892  // are:
  1893  //
  1894  // _REENTRANT
  1895  // _ISOC99_SOURCE
  1896  // _ISOC11_SOURCE
  1897  // _LARGEFILE_SOURCE		Large File Support
  1898  //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
  1899  
  1900  // Machine type dependent parameters.
  1901  //	$NetBSD: types.h,v 1.38 2019/04/06 03:06:25 thorpej Exp $
  1902  
  1903  // Copyright (c) 1990 The Regents of the University of California.
  1904  // All rights reserved.
  1905  //
  1906  // Redistribution and use in source and binary forms, with or without
  1907  // modification, are permitted provided that the following conditions
  1908  // are met:
  1909  // 1. Redistributions of source code must retain the above copyright
  1910  //    notice, this list of conditions and the following disclaimer.
  1911  // 2. Redistributions in binary form must reproduce the above copyright
  1912  //    notice, this list of conditions and the following disclaimer in the
  1913  //    documentation and/or other materials provided with the distribution.
  1914  // 3. Neither the name of the University nor the names of its contributors
  1915  //    may be used to endorse or promote products derived from this software
  1916  //    without specific prior written permission.
  1917  //
  1918  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  1919  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1920  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  1921  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  1922  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  1923  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  1924  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  1925  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  1926  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1927  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1928  // SUCH DAMAGE.
  1929  //
  1930  //	from: @(#)types.h	7.5 (Berkeley) 3/9/91
  1931  
  1932  //	$NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
  1933  
  1934  // * Copyright (c) 1991, 1993
  1935  //	The Regents of the University of California.  All rights reserved.
  1936  //
  1937  // This code is derived from software contributed to Berkeley by
  1938  // Berkeley Software Design, Inc.
  1939  //
  1940  // Redistribution and use in source and binary forms, with or without
  1941  // modification, are permitted provided that the following conditions
  1942  // are met:
  1943  // 1. Redistributions of source code must retain the above copyright
  1944  //    notice, this list of conditions and the following disclaimer.
  1945  // 2. Redistributions in binary form must reproduce the above copyright
  1946  //    notice, this list of conditions and the following disclaimer in the
  1947  //    documentation and/or other materials provided with the distribution.
  1948  // 3. Neither the name of the University nor the names of its contributors
  1949  //    may be used to endorse or promote products derived from this software
  1950  //    without specific prior written permission.
  1951  //
  1952  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  1953  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  1954  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  1955  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  1956  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  1957  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  1958  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  1959  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  1960  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  1961  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  1962  // SUCH DAMAGE.
  1963  //
  1964  //	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
  1965  
  1966  //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
  1967  
  1968  // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
  1969  // Public domain.
  1970  //
  1971  // NOTE: Do not protect this header against multiple inclusion.  Doing
  1972  // so can have subtle side-effects due to header file inclusion order
  1973  // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
  1974  // protect each CPP macro that we want to supply.
  1975  
  1976  // Feature-test macros are defined by several standards, and allow an
  1977  // application to specify what symbols they want the system headers to
  1978  // expose, and hence what standard they want them to conform to.
  1979  // There are two classes of feature-test macros.  The first class
  1980  // specify complete standards, and if one of these is defined, header
  1981  // files will try to conform to the relevant standard.  They are:
  1982  //
  1983  // ANSI macros:
  1984  // _ANSI_SOURCE			ANSI C89
  1985  //
  1986  // POSIX macros:
  1987  // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
  1988  // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
  1989  // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
  1990  // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
  1991  // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
  1992  // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
  1993  // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
  1994  //
  1995  // X/Open macros:
  1996  // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
  1997  // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
  1998  // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
  1999  // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
  2000  // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
  2001  // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
  2002  //
  2003  // NetBSD macros:
  2004  // _NETBSD_SOURCE == 1		Make all NetBSD features available.
  2005  //
  2006  // If more than one of these "major" feature-test macros is defined,
  2007  // then the set of facilities provided (and namespace used) is the
  2008  // union of that specified by the relevant standards, and in case of
  2009  // conflict, the earlier standard in the above list has precedence (so
  2010  // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
  2011  // of rename() that's used is the POSIX one).  If none of the "major"
  2012  // feature-test macros is defined, _NETBSD_SOURCE is assumed.
  2013  //
  2014  // There are also "minor" feature-test macros, which enable extra
  2015  // functionality in addition to some base standard.  They should be
  2016  // defined along with one of the "major" macros.  The "minor" macros
  2017  // are:
  2018  //
  2019  // _REENTRANT
  2020  // _ISOC99_SOURCE
  2021  // _ISOC11_SOURCE
  2022  // _LARGEFILE_SOURCE		Large File Support
  2023  //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
  2024  
  2025  //	$NetBSD: int_types.h,v 1.17 2014/07/25 21:43:13 joerg Exp $
  2026  
  2027  // -
  2028  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  2029  // All rights reserved.
  2030  //
  2031  // This code is derived from software contributed to The NetBSD Foundation
  2032  // by Matt Thomas of 3am Software Foundry.
  2033  //
  2034  // Redistribution and use in source and binary forms, with or without
  2035  // modification, are permitted provided that the following conditions
  2036  // are met:
  2037  // 1. Redistributions of source code must retain the above copyright
  2038  //    notice, this list of conditions and the following disclaimer.
  2039  // 2. Redistributions in binary form must reproduce the above copyright
  2040  //    notice, this list of conditions and the following disclaimer in the
  2041  //    documentation and/or other materials provided with the distribution.
  2042  //
  2043  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2044  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2045  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2046  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2047  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2048  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2049  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2050  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2051  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2052  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2053  // POSSIBILITY OF SUCH DAMAGE.
  2054  
  2055  // This should have always been an 8-bit type, but since it's been exposed
  2056  // to user-space, we don't want ABI breakage there.
  2057  type X__cpu_simple_lock_nv_t = int32 /* types.h:75:14 */
  2058  type X__register_t = int32           /* types.h:77:14 */
  2059  
  2060  //	$NetBSD: ansi.h,v 1.18 2019/05/07 03:49:26 kamil Exp $
  2061  
  2062  //	$NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
  2063  
  2064  // -
  2065  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  2066  // All rights reserved.
  2067  //
  2068  // This code is derived from software contributed to The NetBSD Foundation
  2069  // by Matt Thomas of 3am Software Foundry.
  2070  //
  2071  // Redistribution and use in source and binary forms, with or without
  2072  // modification, are permitted provided that the following conditions
  2073  // are met:
  2074  // 1. Redistributions of source code must retain the above copyright
  2075  //    notice, this list of conditions and the following disclaimer.
  2076  // 2. Redistributions in binary form must reproduce the above copyright
  2077  //    notice, this list of conditions and the following disclaimer in the
  2078  //    documentation and/or other materials provided with the distribution.
  2079  //
  2080  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2081  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2082  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2083  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2084  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2085  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2086  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2087  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2088  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2089  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2090  // POSSIBILITY OF SUCH DAMAGE.
  2091  
  2092  //	$NetBSD: int_types.h,v 1.17 2014/07/25 21:43:13 joerg Exp $
  2093  
  2094  // -
  2095  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  2096  // All rights reserved.
  2097  //
  2098  // This code is derived from software contributed to The NetBSD Foundation
  2099  // by Matt Thomas of 3am Software Foundry.
  2100  //
  2101  // Redistribution and use in source and binary forms, with or without
  2102  // modification, are permitted provided that the following conditions
  2103  // are met:
  2104  // 1. Redistributions of source code must retain the above copyright
  2105  //    notice, this list of conditions and the following disclaimer.
  2106  // 2. Redistributions in binary form must reproduce the above copyright
  2107  //    notice, this list of conditions and the following disclaimer in the
  2108  //    documentation and/or other materials provided with the distribution.
  2109  //
  2110  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2111  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2112  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2113  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2114  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2115  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2116  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2117  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2118  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2119  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2120  // POSSIBILITY OF SUCH DAMAGE.
  2121  
  2122  //	$NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
  2123  
  2124  // -
  2125  // Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
  2126  // All rights reserved.
  2127  //
  2128  // This code is derived from software contributed to The NetBSD Foundation
  2129  // by Jun-ichiro itojun Hagino and by Klaus Klein.
  2130  //
  2131  // Redistribution and use in source and binary forms, with or without
  2132  // modification, are permitted provided that the following conditions
  2133  // are met:
  2134  // 1. Redistributions of source code must retain the above copyright
  2135  //    notice, this list of conditions and the following disclaimer.
  2136  // 2. Redistributions in binary form must reproduce the above copyright
  2137  //    notice, this list of conditions and the following disclaimer in the
  2138  //    documentation and/or other materials provided with the distribution.
  2139  //
  2140  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2141  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2142  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2143  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2144  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2145  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2146  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2147  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2148  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2149  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2150  // POSSIBILITY OF SUCH DAMAGE.
  2151  
  2152  type Int8_t = X__int8_t /* types.h:54:18 */
  2153  
  2154  type Int16_t = X__int16_t /* types.h:64:19 */
  2155  
  2156  type Uint16_t = X__uint16_t /* types.h:69:20 */
  2157  
  2158  type Int32_t = X__int32_t /* types.h:74:19 */
  2159  
  2160  type Int64_t = X__int64_t /* types.h:84:19 */
  2161  
  2162  type Uint64_t = X__uint64_t /* types.h:89:20 */
  2163  
  2164  type U_int8_t = Uint8_t   /* types.h:93:18 */
  2165  type U_int16_t = Uint16_t /* types.h:94:18 */
  2166  type U_int32_t = Uint32_t /* types.h:95:18 */
  2167  type U_int64_t = Uint64_t /* types.h:96:18 */
  2168  
  2169  //	$NetBSD: endian.h,v 1.3 2001/06/23 12:20:27 bjh21 Exp $
  2170  
  2171  //	$NetBSD: endian.h,v 1.30 2016/02/27 21:37:35 christos Exp $
  2172  
  2173  // Copyright (c) 1987, 1991, 1993
  2174  //	The Regents of the University of California.  All rights reserved.
  2175  //
  2176  // Redistribution and use in source and binary forms, with or without
  2177  // modification, are permitted provided that the following conditions
  2178  // are met:
  2179  // 1. Redistributions of source code must retain the above copyright
  2180  //    notice, this list of conditions and the following disclaimer.
  2181  // 2. Redistributions in binary form must reproduce the above copyright
  2182  //    notice, this list of conditions and the following disclaimer in the
  2183  //    documentation and/or other materials provided with the distribution.
  2184  // 3. Neither the name of the University nor the names of its contributors
  2185  //    may be used to endorse or promote products derived from this software
  2186  //    without specific prior written permission.
  2187  //
  2188  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  2189  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  2190  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  2191  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  2192  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  2193  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  2194  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  2195  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  2196  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  2197  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  2198  // SUCH DAMAGE.
  2199  //
  2200  //	@(#)endian.h	8.1 (Berkeley) 6/11/93
  2201  
  2202  type U_char = uint8   /* types.h:101:23 */
  2203  type U_short = uint16 /* types.h:102:24 */
  2204  type U_int = uint32   /* types.h:103:22 */
  2205  type U_long = uint32  /* types.h:104:23 */
  2206  
  2207  type Unchar = uint8  /* types.h:106:23 */ // Sys V compatibility
  2208  type Ushort = uint16 /* types.h:107:24 */ // Sys V compatibility
  2209  type Uint = uint32   /* types.h:108:22 */ // Sys V compatibility
  2210  type Ulong = uint32  /* types.h:109:23 */ // Sys V compatibility
  2211  
  2212  type U_quad_t = Uint64_t /* types.h:112:18 */ // quads
  2213  type Quad_t = Int64_t    /* types.h:113:18 */
  2214  type Qaddr_t = uintptr   /* types.h:114:16 */
  2215  
  2216  // The types longlong_t and u_longlong_t exist for use with the
  2217  // Sun-derived XDR routines involving these types, and their usage
  2218  // in other contexts is discouraged.  Further note that these types
  2219  // may not be equivalent to "long long" and "unsigned long long",
  2220  // they are only guaranteed to be signed and unsigned 64-bit types
  2221  // respectively.  Portable programs that need 64-bit types should use
  2222  // the C99 types int64_t and uint64_t instead.
  2223  
  2224  type Longlong_t = Int64_t    /* types.h:126:18 */ // for XDR
  2225  type U_longlong_t = Uint64_t /* types.h:127:18 */ // for XDR
  2226  
  2227  type Blkcnt_t = Int64_t  /* types.h:129:18 */ // fs block count
  2228  type Blksize_t = Int32_t /* types.h:130:18 */ // fs optimal block size
  2229  
  2230  type Fsblkcnt_t = X__fsblkcnt_t /* types.h:133:22 */ // fs block count (statvfs)
  2231  
  2232  type Fsfilcnt_t = X__fsfilcnt_t /* types.h:138:22 */ // fs file count
  2233  
  2234  // We don't and shouldn't use caddr_t in the kernel anymore
  2235  type Caddr_t = X__caddr_t /* types.h:145:19 */ // core address
  2236  
  2237  type Daddr_t = Int64_t /* types.h:154:18 */ // disk address
  2238  
  2239  type Dev_t = Uint64_t   /* types.h:157:18 */ // device number
  2240  type Fixpt_t = Uint32_t /* types.h:158:18 */ // fixed point number
  2241  
  2242  type Id_t = Uint32_t  /* types.h:165:18 */ // group id, process id or user id
  2243  type Ino_t = Uint64_t /* types.h:166:18 */ // inode number
  2244  type Key_t = int32    /* types.h:167:15 */ // IPC key (for Sys V IPC)
  2245  
  2246  type Mode_t = X__mode_t /* types.h:170:18 */ // permissions
  2247  
  2248  type Nlink_t = Uint32_t /* types.h:174:18 */ // link count
  2249  
  2250  type Lwpid_t = Int32_t /* types.h:185:18 */ // LWP id
  2251  type Rlim_t = Uint64_t /* types.h:186:18 */ // resource limit
  2252  type Segsz_t = Int32_t /* types.h:187:18 */ // segment size
  2253  type Swblk_t = Int32_t /* types.h:188:18 */ // swap offset
  2254  
  2255  type Mqd_t = int32 /* types.h:195:14 */
  2256  
  2257  type Cpuid_t = uint32 /* types.h:197:23 */
  2258  
  2259  type Psetid_t = int32 /* types.h:199:14 */
  2260  
  2261  type X__cpu_simple_lock_t = X__cpu_simple_lock_nv_t /* types.h:201:41 */
  2262  
  2263  // Major, minor numbers, dev_t's.
  2264  type X__devmajor_t = Int32_t /* types.h:255:17 */
  2265  type X__devminor_t = Int32_t /* types.h:255:31 */
  2266  
  2267  type Clock_t = uint32 /* types.h:268:24 */
  2268  
  2269  type Time_t = X__int64_t /* types.h:289:23 */
  2270  
  2271  type Clockid_t = int32 /* types.h:294:26 */
  2272  
  2273  type Timer_t = int32 /* types.h:299:24 */
  2274  
  2275  type Suseconds_t = int32 /* types.h:304:27 */
  2276  
  2277  type Useconds_t = uint32 /* types.h:309:26 */
  2278  
  2279  //	$NetBSD: fd_set.h,v 1.7 2018/06/24 12:05:40 kamil Exp $
  2280  
  2281  // -
  2282  // Copyright (c) 1992, 1993
  2283  //	The Regents of the University of California.  All rights reserved.
  2284  //
  2285  // Redistribution and use in source and binary forms, with or without
  2286  // modification, are permitted provided that the following conditions
  2287  // are met:
  2288  // 1. Redistributions of source code must retain the above copyright
  2289  //    notice, this list of conditions and the following disclaimer.
  2290  // 2. Redistributions in binary form must reproduce the above copyright
  2291  //    notice, this list of conditions and the following disclaimer in the
  2292  //    documentation and/or other materials provided with the distribution.
  2293  // 3. Neither the name of the University nor the names of its contributors
  2294  //    may be used to endorse or promote products derived from this software
  2295  //    without specific prior written permission.
  2296  //
  2297  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  2298  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  2299  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  2300  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  2301  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  2302  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  2303  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  2304  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  2305  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  2306  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  2307  // SUCH DAMAGE.
  2308  //
  2309  //	from: @(#)types.h	8.4 (Berkeley) 1/21/94
  2310  
  2311  //	$NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
  2312  
  2313  // * Copyright (c) 1991, 1993
  2314  //	The Regents of the University of California.  All rights reserved.
  2315  //
  2316  // This code is derived from software contributed to Berkeley by
  2317  // Berkeley Software Design, Inc.
  2318  //
  2319  // Redistribution and use in source and binary forms, with or without
  2320  // modification, are permitted provided that the following conditions
  2321  // are met:
  2322  // 1. Redistributions of source code must retain the above copyright
  2323  //    notice, this list of conditions and the following disclaimer.
  2324  // 2. Redistributions in binary form must reproduce the above copyright
  2325  //    notice, this list of conditions and the following disclaimer in the
  2326  //    documentation and/or other materials provided with the distribution.
  2327  // 3. Neither the name of the University nor the names of its contributors
  2328  //    may be used to endorse or promote products derived from this software
  2329  //    without specific prior written permission.
  2330  //
  2331  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  2332  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  2333  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  2334  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  2335  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  2336  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  2337  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  2338  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  2339  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  2340  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  2341  // SUCH DAMAGE.
  2342  //
  2343  //	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
  2344  
  2345  //	$NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
  2346  
  2347  // Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
  2348  // Public domain.
  2349  //
  2350  // NOTE: Do not protect this header against multiple inclusion.  Doing
  2351  // so can have subtle side-effects due to header file inclusion order
  2352  // and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE.  Instead,
  2353  // protect each CPP macro that we want to supply.
  2354  
  2355  // Feature-test macros are defined by several standards, and allow an
  2356  // application to specify what symbols they want the system headers to
  2357  // expose, and hence what standard they want them to conform to.
  2358  // There are two classes of feature-test macros.  The first class
  2359  // specify complete standards, and if one of these is defined, header
  2360  // files will try to conform to the relevant standard.  They are:
  2361  //
  2362  // ANSI macros:
  2363  // _ANSI_SOURCE			ANSI C89
  2364  //
  2365  // POSIX macros:
  2366  // _POSIX_SOURCE == 1		IEEE Std 1003.1 (version?)
  2367  // _POSIX_C_SOURCE == 1		IEEE Std 1003.1-1990
  2368  // _POSIX_C_SOURCE == 2		IEEE Std 1003.2-1992
  2369  // _POSIX_C_SOURCE == 199309L	IEEE Std 1003.1b-1993
  2370  // _POSIX_C_SOURCE == 199506L	ISO/IEC 9945-1:1996
  2371  // _POSIX_C_SOURCE == 200112L	IEEE Std 1003.1-2001
  2372  // _POSIX_C_SOURCE == 200809L   IEEE Std 1003.1-2008
  2373  //
  2374  // X/Open macros:
  2375  // _XOPEN_SOURCE		System Interfaces and Headers, Issue 4, Ver 2
  2376  // _XOPEN_SOURCE_EXTENDED == 1	XSH4.2 UNIX extensions
  2377  // _XOPEN_SOURCE == 500		System Interfaces and Headers, Issue 5
  2378  // _XOPEN_SOURCE == 520		Networking Services (XNS), Issue 5.2
  2379  // _XOPEN_SOURCE == 600		IEEE Std 1003.1-2001, XSI option
  2380  // _XOPEN_SOURCE == 700		IEEE Std 1003.1-2008, XSI option
  2381  //
  2382  // NetBSD macros:
  2383  // _NETBSD_SOURCE == 1		Make all NetBSD features available.
  2384  //
  2385  // If more than one of these "major" feature-test macros is defined,
  2386  // then the set of facilities provided (and namespace used) is the
  2387  // union of that specified by the relevant standards, and in case of
  2388  // conflict, the earlier standard in the above list has precedence (so
  2389  // if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
  2390  // of rename() that's used is the POSIX one).  If none of the "major"
  2391  // feature-test macros is defined, _NETBSD_SOURCE is assumed.
  2392  //
  2393  // There are also "minor" feature-test macros, which enable extra
  2394  // functionality in addition to some base standard.  They should be
  2395  // defined along with one of the "major" macros.  The "minor" macros
  2396  // are:
  2397  //
  2398  // _REENTRANT
  2399  // _ISOC99_SOURCE
  2400  // _ISOC11_SOURCE
  2401  // _LARGEFILE_SOURCE		Large File Support
  2402  //		<http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
  2403  
  2404  //	$NetBSD: int_types.h,v 1.17 2014/07/25 21:43:13 joerg Exp $
  2405  
  2406  // -
  2407  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  2408  // All rights reserved.
  2409  //
  2410  // This code is derived from software contributed to The NetBSD Foundation
  2411  // by Matt Thomas of 3am Software Foundry.
  2412  //
  2413  // Redistribution and use in source and binary forms, with or without
  2414  // modification, are permitted provided that the following conditions
  2415  // are met:
  2416  // 1. Redistributions of source code must retain the above copyright
  2417  //    notice, this list of conditions and the following disclaimer.
  2418  // 2. Redistributions in binary form must reproduce the above copyright
  2419  //    notice, this list of conditions and the following disclaimer in the
  2420  //    documentation and/or other materials provided with the distribution.
  2421  //
  2422  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2423  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2424  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2425  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2426  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2427  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2428  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2429  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2430  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2431  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2432  // POSSIBILITY OF SUCH DAMAGE.
  2433  
  2434  // Implementation dependent defines, hidden from user space.
  2435  // POSIX does not specify them.
  2436  
  2437  type X__fd_mask = X__uint32_t /* fd_set.h:46:20 */
  2438  
  2439  // 32 = 2 ^ 5
  2440  
  2441  // Select uses bit fields of file descriptors.  These macros manipulate
  2442  // such bit fields.  Note: FD_SETSIZE may be defined by the user.
  2443  
  2444  type Fd_set1 = struct{ Ffds_bits [8]X__fd_mask } /* fd_set.h:66:9 */
  2445  
  2446  // 32 = 2 ^ 5
  2447  
  2448  // Select uses bit fields of file descriptors.  These macros manipulate
  2449  // such bit fields.  Note: FD_SETSIZE may be defined by the user.
  2450  
  2451  type Fd_set = Fd_set1 /* fd_set.h:68:3 */
  2452  
  2453  // Expose our internals if we are not required to hide them.
  2454  
  2455  type Kauth_cred_t = uintptr /* types.h:318:27 */
  2456  
  2457  type Pri_t = int32 /* types.h:320:13 */
  2458  
  2459  //	$NetBSD: pthread_types.h,v 1.23 2017/09/09 23:21:45 kamil Exp $
  2460  
  2461  // -
  2462  // Copyright (c) 2001, 2008 The NetBSD Foundation, Inc.
  2463  // All rights reserved.
  2464  //
  2465  // This code is derived from software contributed to The NetBSD Foundation
  2466  // by Nathan J. Williams.
  2467  //
  2468  // Redistribution and use in source and binary forms, with or without
  2469  // modification, are permitted provided that the following conditions
  2470  // are met:
  2471  // 1. Redistributions of source code must retain the above copyright
  2472  //    notice, this list of conditions and the following disclaimer.
  2473  // 2. Redistributions in binary form must reproduce the above copyright
  2474  //    notice, this list of conditions and the following disclaimer in the
  2475  //    documentation and/or other materials provided with the distribution.
  2476  //
  2477  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2478  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2479  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2480  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2481  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2482  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2483  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2484  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2485  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2486  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2487  // POSSIBILITY OF SUCH DAMAGE.
  2488  
  2489  // We use the "pthread_spin_t" name internally; "pthread_spinlock_t" is the
  2490  // POSIX spinlock object.
  2491  //
  2492  // C++ expects to be using PTHREAD_FOO_INITIALIZER as a member initializer.
  2493  // This does not work for volatile types.  Since C++ does not touch the guts
  2494  // of those types, we do not include volatile in the C++ definitions.
  2495  type Pthread_spin_t = X__cpu_simple_lock_t /* pthread_types.h:43:29 */
  2496  type X__pthread_spin_t = Pthread_spin_t    /* pthread_types.h:48:24 */
  2497  
  2498  // Copied from PTQ_HEAD in pthread_queue.h
  2499  
  2500  type Pthread_queue_struct_t = struct {
  2501  	Fptqh_first uintptr
  2502  	Fptqh_last  uintptr
  2503  } /* pthread_types.h:61:1 */
  2504  
  2505  type Pthread_queue_t = Pthread_queue_struct_t /* pthread_types.h:62:39 */
  2506  type X__pthread_attr_st = struct {
  2507  	Fpta_magic   uint32
  2508  	Fpta_flags   int32
  2509  	Fpta_private uintptr
  2510  } /* pthread_types.h:65:1 */
  2511  
  2512  type X__pthread_mutex_st = struct {
  2513  	Fptm_magic      uint32
  2514  	Fptm_errorcheck X__pthread_spin_t
  2515  	F__8            struct {
  2516  		F__ccgo_pad1 [0]uint32
  2517  		Fptm_ceiling uint8
  2518  		F__ccgo_pad2 [3]byte
  2519  	}
  2520  	Fptm_owner    Pthread_t
  2521  	Fptm_waiters  uintptr
  2522  	Fptm_recursed uint32
  2523  	Fptm_spare2   uintptr
  2524  } /* pthread_types.h:66:1 */
  2525  
  2526  type X__pthread_mutexattr_st = struct {
  2527  	Fptma_magic   uint32
  2528  	Fptma_private uintptr
  2529  } /* pthread_types.h:67:1 */
  2530  
  2531  type X__pthread_cond_st = struct {
  2532  	Fptc_magic   uint32
  2533  	Fptc_lock    X__pthread_spin_t
  2534  	Fptc_waiters Pthread_queue_t
  2535  	Fptc_mutex   uintptr
  2536  	Fptc_private uintptr
  2537  } /* pthread_types.h:68:1 */
  2538  
  2539  type X__pthread_condattr_st = struct {
  2540  	Fptca_magic   uint32
  2541  	Fptca_private uintptr
  2542  } /* pthread_types.h:69:1 */
  2543  
  2544  type X__pthread_rwlock_st = struct {
  2545  	Fptr_magic     uint32
  2546  	Fptr_interlock X__pthread_spin_t
  2547  	Fptr_rblocked  Pthread_queue_t
  2548  	Fptr_wblocked  Pthread_queue_t
  2549  	Fptr_nreaders  uint32
  2550  	Fptr_owner     Pthread_t
  2551  	Fptr_private   uintptr
  2552  } /* pthread_types.h:71:1 */
  2553  
  2554  type X__pthread_rwlockattr_st = struct {
  2555  	Fptra_magic   uint32
  2556  	Fptra_private uintptr
  2557  } /* pthread_types.h:72:1 */
  2558  
  2559  type X__pthread_barrier_st = struct {
  2560  	Fptb_magic      uint32
  2561  	Fptb_lock       Pthread_spin_t
  2562  	Fptb_waiters    Pthread_queue_t
  2563  	Fptb_initcount  uint32
  2564  	Fptb_curcount   uint32
  2565  	Fptb_generation uint32
  2566  	Fptb_private    uintptr
  2567  } /* pthread_types.h:73:1 */
  2568  
  2569  type X__pthread_barrierattr_st = struct {
  2570  	Fptba_magic   uint32
  2571  	Fptba_private uintptr
  2572  } /* pthread_types.h:74:1 */
  2573  
  2574  type Pthread_t = uintptr                           /* pthread_types.h:76:29 */
  2575  type Pthread_attr_t = X__pthread_attr_st           /* pthread_types.h:77:34 */
  2576  type Pthread_mutex_t = X__pthread_mutex_st         /* pthread_types.h:78:35 */
  2577  type Pthread_mutexattr_t = X__pthread_mutexattr_st /* pthread_types.h:79:39 */
  2578  type Pthread_cond_t = X__pthread_cond_st           /* pthread_types.h:80:34 */
  2579  type Pthread_condattr_t = X__pthread_condattr_st   /* pthread_types.h:81:38 */
  2580  type X__pthread_once_st = struct {
  2581  	Fpto_mutex Pthread_mutex_t
  2582  	Fpto_done  int32
  2583  } /* pthread_types.h:82:9 */
  2584  
  2585  type Pthread_once_t = X__pthread_once_st /* pthread_types.h:82:34 */
  2586  type X__pthread_spinlock_st = struct {
  2587  	Fpts_magic uint32
  2588  	Fpts_spin  X__pthread_spin_t
  2589  	Fpts_flags int32
  2590  } /* pthread_types.h:83:9 */
  2591  
  2592  type Pthread_spinlock_t = X__pthread_spinlock_st       /* pthread_types.h:83:38 */
  2593  type Pthread_rwlock_t = X__pthread_rwlock_st           /* pthread_types.h:84:36 */
  2594  type Pthread_rwlockattr_t = X__pthread_rwlockattr_st   /* pthread_types.h:85:40 */
  2595  type Pthread_barrier_t = X__pthread_barrier_st         /* pthread_types.h:86:37 */
  2596  type Pthread_barrierattr_t = X__pthread_barrierattr_st /* pthread_types.h:87:41 */
  2597  type Pthread_key_t = int32                             /* pthread_types.h:88:13 */
  2598  
  2599  //      $NetBSD: bswap.h,v 1.19 2015/03/12 15:28:16 christos Exp $
  2600  
  2601  // Written by Manuel Bouyer. Public domain
  2602  
  2603  //	$NetBSD: stdint.h,v 1.8 2018/11/06 16:26:44 maya Exp $
  2604  
  2605  // -
  2606  // Copyright (c) 2001, 2004 The NetBSD Foundation, Inc.
  2607  // All rights reserved.
  2608  //
  2609  // This code is derived from software contributed to The NetBSD Foundation
  2610  // by Klaus Klein.
  2611  //
  2612  // Redistribution and use in source and binary forms, with or without
  2613  // modification, are permitted provided that the following conditions
  2614  // are met:
  2615  // 1. Redistributions of source code must retain the above copyright
  2616  //    notice, this list of conditions and the following disclaimer.
  2617  // 2. Redistributions in binary form must reproduce the above copyright
  2618  //    notice, this list of conditions and the following disclaimer in the
  2619  //    documentation and/or other materials provided with the distribution.
  2620  //
  2621  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2622  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2623  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2624  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2625  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2626  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2627  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2628  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2629  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2630  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2631  // POSSIBILITY OF SUCH DAMAGE.
  2632  
  2633  //	$NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
  2634  
  2635  // * Copyright (c) 1991, 1993
  2636  //	The Regents of the University of California.  All rights reserved.
  2637  //
  2638  // This code is derived from software contributed to Berkeley by
  2639  // Berkeley Software Design, Inc.
  2640  //
  2641  // Redistribution and use in source and binary forms, with or without
  2642  // modification, are permitted provided that the following conditions
  2643  // are met:
  2644  // 1. Redistributions of source code must retain the above copyright
  2645  //    notice, this list of conditions and the following disclaimer.
  2646  // 2. Redistributions in binary form must reproduce the above copyright
  2647  //    notice, this list of conditions and the following disclaimer in the
  2648  //    documentation and/or other materials provided with the distribution.
  2649  // 3. Neither the name of the University nor the names of its contributors
  2650  //    may be used to endorse or promote products derived from this software
  2651  //    without specific prior written permission.
  2652  //
  2653  // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  2654  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  2655  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  2656  // ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  2657  // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  2658  // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  2659  // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  2660  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  2661  // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  2662  // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  2663  // SUCH DAMAGE.
  2664  //
  2665  //	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
  2666  
  2667  //	$NetBSD: int_types.h,v 1.17 2014/07/25 21:43:13 joerg Exp $
  2668  
  2669  // -
  2670  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  2671  // All rights reserved.
  2672  //
  2673  // This code is derived from software contributed to The NetBSD Foundation
  2674  // by Matt Thomas of 3am Software Foundry.
  2675  //
  2676  // Redistribution and use in source and binary forms, with or without
  2677  // modification, are permitted provided that the following conditions
  2678  // are met:
  2679  // 1. Redistributions of source code must retain the above copyright
  2680  //    notice, this list of conditions and the following disclaimer.
  2681  // 2. Redistributions in binary form must reproduce the above copyright
  2682  //    notice, this list of conditions and the following disclaimer in the
  2683  //    documentation and/or other materials provided with the distribution.
  2684  //
  2685  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2686  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2687  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2688  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2689  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2690  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2691  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2692  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2693  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2694  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2695  // POSSIBILITY OF SUCH DAMAGE.
  2696  
  2697  type Intptr_t = X__intptr_t /* stdint.h:79:20 */
  2698  
  2699  type Uintptr_t = X__uintptr_t /* stdint.h:84:21 */
  2700  
  2701  // $NetBSD: int_mwgwtypes.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
  2702  
  2703  // -
  2704  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  2705  // All rights reserved.
  2706  //
  2707  // This code is derived from software contributed to The NetBSD Foundation
  2708  // by Matt Thomas of 3am Software Foundry.
  2709  //
  2710  // Redistribution and use in source and binary forms, with or without
  2711  // modification, are permitted provided that the following conditions
  2712  // are met:
  2713  // 1. Redistributions of source code must retain the above copyright
  2714  //    notice, this list of conditions and the following disclaimer.
  2715  // 2. Redistributions in binary form must reproduce the above copyright
  2716  //    notice, this list of conditions and the following disclaimer in the
  2717  //    documentation and/or other materials provided with the distribution.
  2718  //
  2719  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2720  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2721  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2722  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2723  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2724  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2725  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2726  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2727  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2728  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2729  // POSSIBILITY OF SUCH DAMAGE.
  2730  
  2731  //	$NetBSD: common_int_mwgwtypes.h,v 1.1 2014/07/25 21:43:13 joerg Exp $
  2732  
  2733  // -
  2734  // Copyright (c) 2014 The NetBSD Foundation, Inc.
  2735  // All rights reserved.
  2736  //
  2737  // This code is derived from software contributed to The NetBSD Foundation
  2738  // by Joerg Sonnenberger.
  2739  //
  2740  // Redistribution and use in source and binary forms, with or without
  2741  // modification, are permitted provided that the following conditions
  2742  // are met:
  2743  // 1. Redistributions of source code must retain the above copyright
  2744  //    notice, this list of conditions and the following disclaimer.
  2745  // 2. Redistributions in binary form must reproduce the above copyright
  2746  //    notice, this list of conditions and the following disclaimer in the
  2747  //    documentation and/or other materials provided with the distribution.
  2748  //
  2749  // THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  2750  // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  2751  // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  2752  // PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  2753  // BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  2754  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  2755  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  2756  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  2757  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  2758  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  2759  // POSSIBILITY OF SUCH DAMAGE.
  2760  
  2761  // 7.18.1 Integer types
  2762  
  2763  // 7.18.1.2 Minimum-width integer types
  2764  
  2765  type Int_least8_t = int8     /* common_int_mwgwtypes.h:45:32 */
  2766  type Uint_least8_t = uint8   /* common_int_mwgwtypes.h:46:32 */
  2767  type Int_least16_t = int16   /* common_int_mwgwtypes.h:47:32 */
  2768  type Uint_least16_t = uint16 /* common_int_mwgwtypes.h:48:32 */
  2769  type Int_least32_t = int32   /* common_int_mwgwtypes.h:49:32 */
  2770  type Uint_least32_t = uint32 /* common_int_mwgwtypes.h:50:32 */
  2771  type Int_least64_t = int64   /* common_int_mwgwtypes.h:51:32 */
  2772  type Uint_least64_t = uint64 /* common_int_mwgwtypes.h:52:32 */
  2773  
  2774  // 7.18.1.3 Fastest minimum-width integer types
  2775  type Int_fast8_t = int32    /* common_int_mwgwtypes.h:55:32 */
  2776  type Uint_fast8_t = uint32  /* common_int_mwgwtypes.h:56:32 */
  2777  type Int_fast16_t = int32   /* common_int_mwgwtypes.h:57:32 */
  2778  type Uint_fast16_t = uint32 /* common_int_mwgwtypes.h:58:32 */
  2779  type Int_fast32_t = int32   /* common_int_mwgwtypes.h:59:32 */
  2780  type Uint_fast32_t = uint32 /* common_int_mwgwtypes.h:60:32 */
  2781  type Int_fast64_t = int64   /* common_int_mwgwtypes.h:61:32 */
  2782  type Uint_fast64_t = uint64 /* common_int_mwgwtypes.h:62:32 */
  2783  
  2784  // 7.18.1.5 Greatest-width integer types
  2785  
  2786  type Intmax_t = int64   /* common_int_mwgwtypes.h:66:33 */
  2787  type Uintmax_t = uint64 /* common_int_mwgwtypes.h:67:32 */
  2788  
  2789  // Identification of the network protocol stack
  2790  // for *BSD-current/release: http://www.kame.net/dev/cvsweb.cgi/kame/COVERAGE
  2791  // has the table of implementation/integration differences.
  2792  
  2793  // Local port number conventions:
  2794  //
  2795  // Ports < IPPORT_RESERVED are reserved for privileged processes (e.g. root),
  2796  // unless a kernel is compiled with IPNOPRIVPORTS defined.
  2797  //
  2798  // When a user does a bind(2) or connect(2) with a port number of zero,
  2799  // a non-conflicting local port address is chosen.
  2800  //
  2801  // The default range is IPPORT_ANONMIN to IPPORT_ANONMAX, although
  2802  // that is settable by sysctl(3); net.inet.ip.anonportmin and
  2803  // net.inet.ip.anonportmax respectively.
  2804  //
  2805  // A user may set the IPPROTO_IP option IP_PORTRANGE to change this
  2806  // default assignment range.
  2807  //
  2808  // The value IP_PORTRANGE_DEFAULT causes the default behavior.
  2809  //
  2810  // The value IP_PORTRANGE_HIGH is the same as IP_PORTRANGE_DEFAULT,
  2811  // and exists only for FreeBSD compatibility purposes.
  2812  //
  2813  // The value IP_PORTRANGE_LOW changes the range to the "low" are
  2814  // that is (by convention) restricted to privileged processes.
  2815  // This convention is based on "vouchsafe" principles only.
  2816  // It is only secure if you trust the remote host to restrict these ports.
  2817  // The range is IPPORT_RESERVEDMIN to IPPORT_RESERVEDMAX.
  2818  
  2819  // IPv6 address
  2820  type In6_addr = struct {
  2821  	F__u6_addr struct {
  2822  		F__ccgo_pad1 [0]uint32
  2823  		F__u6_addr8  [16]X__uint8_t
  2824  	}
  2825  } /* in6.h:123:1 */
  2826  
  2827  // Socket address for IPv6
  2828  type Sockaddr_in6 = struct {
  2829  	Fsin6_len      Uint8_t
  2830  	Fsin6_family   X__sa_family_t
  2831  	Fsin6_port     X__in_port_t
  2832  	Fsin6_flowinfo Uint32_t
  2833  	Fsin6_addr     struct {
  2834  		F__u6_addr struct {
  2835  			F__ccgo_pad1 [0]uint32
  2836  			F__u6_addr8  [16]X__uint8_t
  2837  		}
  2838  	}
  2839  	Fsin6_scope_id Uint32_t
  2840  } /* in6.h:146:1 */
  2841  
  2842  // Unspecified
  2843  
  2844  // Loopback
  2845  
  2846  // IPv4 compatible
  2847  
  2848  // Mapped
  2849  
  2850  // KAME Scope Values
  2851  
  2852  // Unicast Scope
  2853  // Note that we must check topmost 10 bits only, not 16 bits (see RFC2373).
  2854  
  2855  // Multicast
  2856  
  2857  // Multicast Scope
  2858  
  2859  // Options for use with [gs]etsockopt at the IPV6 level.
  2860  // First word of comment is data type; bool is stored in int.
  2861  // no hdrincl
  2862  // The join and leave membership option numbers need to match with the v4 ones
  2863  // RFC2292 options
  2864  
  2865  // new socket options introduced in RFC3542
  2866  
  2867  // more new socket options introduced in RFC3542
  2868  
  2869  // to define items, should talk with KAME guys first, for *BSD compatibility
  2870  
  2871  // Defaults and limits for options
  2872  
  2873  // Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
  2874  type Ipv6_mreq = struct {
  2875  	Fipv6mr_multiaddr struct {
  2876  		F__u6_addr struct {
  2877  			F__ccgo_pad1 [0]uint32
  2878  			F__u6_addr8  [16]X__uint8_t
  2879  		}
  2880  	}
  2881  	Fipv6mr_interface uint32
  2882  } /* in6.h:459:1 */
  2883  
  2884  // IPV6_PKTINFO: Packet information(RFC2292 sec 5)
  2885  type In6_pktinfo = struct {
  2886  	Fipi6_addr struct {
  2887  		F__u6_addr struct {
  2888  			F__ccgo_pad1 [0]uint32
  2889  			F__u6_addr8  [16]X__uint8_t
  2890  		}
  2891  	}
  2892  	Fipi6_ifindex uint32
  2893  } /* in6.h:467:1 */
  2894  
  2895  // Control structure for IPV6_RECVPATHMTU socket option.
  2896  type Ip6_mtuinfo = struct {
  2897  	Fip6m_addr struct {
  2898  		Fsin6_len      Uint8_t
  2899  		Fsin6_family   X__sa_family_t
  2900  		Fsin6_port     X__in_port_t
  2901  		Fsin6_flowinfo Uint32_t
  2902  		Fsin6_addr     struct {
  2903  			F__u6_addr struct {
  2904  				F__ccgo_pad1 [0]uint32
  2905  				F__u6_addr8  [16]X__uint8_t
  2906  			}
  2907  		}
  2908  		Fsin6_scope_id Uint32_t
  2909  	}
  2910  	Fip6m_mtu Uint32_t
  2911  } /* in6.h:475:1 */
  2912  
  2913  var _ uint8 /* gen.c:2:13: */