netdb_openbsd_386.go (71547B)
1 // Code generated by 'ccgo netdb/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 netdb/netdb_openbsd_386.go -pkgname netdb', DO NOT EDIT. 2 3 package netdb 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 AI_ADDRCONFIG = 64 // netdb.h:165:1: 19 AI_CANONNAME = 2 // netdb.h:160:1: 20 AI_EXT = 8 // netdb.h:162:1: 21 AI_FQDN = 32 // netdb.h:164:1: 22 AI_MASK = 119 // netdb.h:167:1: 23 AI_NUMERICHOST = 4 // netdb.h:161:1: 24 AI_NUMERICSERV = 16 // netdb.h:163:1: 25 AI_PASSIVE = 1 // netdb.h:159:1: 26 BIG_ENDIAN = 4321 // endian.h:45:1: 27 BYTE_ORDER = 1234 // endian.h:47:1: 28 EAI_ADDRFAMILY = -9 // netdb.h:196:1: 29 EAI_AGAIN = -3 // netdb.h:190:1: 30 EAI_BADFLAGS = -1 // netdb.h:188:1: 31 EAI_BADHINTS = -12 // netdb.h:199:1: 32 EAI_FAIL = -4 // netdb.h:191:1: 33 EAI_FAMILY = -6 // netdb.h:193:1: 34 EAI_MEMORY = -10 // netdb.h:197:1: 35 EAI_NODATA = -5 // netdb.h:192:1: 36 EAI_NONAME = -2 // netdb.h:189:1: 37 EAI_OVERFLOW = -14 // netdb.h:201:1: 38 EAI_PROTOCOL = -13 // netdb.h:200:1: 39 EAI_SERVICE = -8 // netdb.h:195:1: 40 EAI_SOCKTYPE = -7 // netdb.h:194:1: 41 EAI_SYSTEM = -11 // netdb.h:198:1: 42 ERRSET_FAIL = 2 // netdb.h:225:1: 43 ERRSET_INVAL = 3 // netdb.h:226:1: 44 ERRSET_NODATA = 5 // netdb.h:228:1: 45 ERRSET_NOMEMORY = 1 // netdb.h:224:1: 46 ERRSET_NONAME = 4 // netdb.h:227:1: 47 ERRSET_SUCCESS = 0 // netdb.h:223:1: 48 HOST_NOT_FOUND = 1 // netdb.h:151:1: 49 ICMP6_FILTER = 18 // in6.h:304:1: 50 INET6_ADDRSTRLEN = 46 // in6.h:97:1: 51 INET_ADDRSTRLEN = 16 // in.h:382:1: 52 IN_CLASSA_MAX = 128 // in.h:195:1: 53 IN_CLASSA_NSHIFT = 24 // in.h:193:1: 54 IN_CLASSB_MAX = 65536 // in.h:202:1: 55 IN_CLASSB_NSHIFT = 16 // in.h:200:1: 56 IN_CLASSC_NSHIFT = 8 // in.h:207:1: 57 IN_CLASSD_NSHIFT = 28 // in.h:214:1: 58 IN_LOOPBACKNET = 127 // in.h:253:1: 59 IN_RFC3021_NSHIFT = 31 // in.h:219:1: 60 IPCTL_ARPDOWN = 40 // in.h:698:1: 61 IPCTL_ARPQUEUE = 41 // in.h:699:1: 62 IPCTL_ARPQUEUED = 36 // in.h:694:1: 63 IPCTL_ARPTIMEOUT = 39 // in.h:697:1: 64 IPCTL_DEFTTL = 3 // in.h:662:1: 65 IPCTL_DIRECTEDBCAST = 6 // in.h:664:1: 66 IPCTL_ENCDEBUG = 12 // in.h:670:1: 67 IPCTL_FORWARDING = 1 // in.h:660:1: 68 IPCTL_IFQUEUE = 30 // in.h:688:1: 69 IPCTL_IPPORT_FIRSTAUTO = 7 // in.h:665:1: 70 IPCTL_IPPORT_HIFIRSTAUTO = 9 // in.h:667:1: 71 IPCTL_IPPORT_HILASTAUTO = 10 // in.h:668:1: 72 IPCTL_IPPORT_LASTAUTO = 8 // in.h:666:1: 73 IPCTL_IPPORT_MAXQUEUE = 11 // in.h:669:1: 74 IPCTL_IPSEC_ALLOCATIONS = 18 // in.h:676:1: 75 IPCTL_IPSEC_AUTH_ALGORITHM = 26 // in.h:684:1: 76 IPCTL_IPSEC_BYTES = 20 // in.h:678:1: 77 IPCTL_IPSEC_EMBRYONIC_SA_TIMEOUT = 15 // in.h:673:1: 78 IPCTL_IPSEC_ENC_ALGORITHM = 25 // in.h:683:1: 79 IPCTL_IPSEC_EXPIRE_ACQUIRE = 14 // in.h:672:1: 80 IPCTL_IPSEC_FIRSTUSE = 24 // in.h:682:1: 81 IPCTL_IPSEC_IPCOMP_ALGORITHM = 29 // in.h:687:1: 82 IPCTL_IPSEC_REQUIRE_PFS = 16 // in.h:674:1: 83 IPCTL_IPSEC_SOFT_ALLOCATIONS = 17 // in.h:675:1: 84 IPCTL_IPSEC_SOFT_BYTES = 19 // in.h:677:1: 85 IPCTL_IPSEC_SOFT_FIRSTUSE = 23 // in.h:681:1: 86 IPCTL_IPSEC_SOFT_TIMEOUT = 22 // in.h:680:1: 87 IPCTL_IPSEC_STATS = 13 // in.h:671:1: 88 IPCTL_IPSEC_TIMEOUT = 21 // in.h:679:1: 89 IPCTL_MAXID = 42 // in.h:700:1: 90 IPCTL_MFORWARDING = 31 // in.h:689:1: 91 IPCTL_MRTMFC = 37 // in.h:695:1: 92 IPCTL_MRTPROTO = 34 // in.h:692:1: 93 IPCTL_MRTSTATS = 35 // in.h:693:1: 94 IPCTL_MRTVIF = 38 // in.h:696:1: 95 IPCTL_MTUDISC = 27 // in.h:685:1: 96 IPCTL_MTUDISCTIMEOUT = 28 // in.h:686:1: 97 IPCTL_MULTIPATH = 32 // in.h:690:1: 98 IPCTL_SENDREDIRECTS = 2 // in.h:661:1: 99 IPCTL_SOURCEROUTE = 5 // in.h:663:1: 100 IPCTL_STATS = 33 // in.h:691:1: 101 IPPORT_HIFIRSTAUTO = 49152 // in.h:159:1: 102 IPPORT_HILASTAUTO = 65535 // in.h:160:1: 103 IPPORT_RESERVED = 1024 // in.h:153:1: 104 IPPORT_USERRESERVED = 49151 // in.h:154:1: 105 IPPROTO_AH = 51 // in.h:89:1: 106 IPPROTO_CARP = 112 // in.h:99:1: 107 IPPROTO_DIVERT = 258 // in.h:109:1: 108 IPPROTO_DONE = 257 // in.h:173:1: 109 IPPROTO_DSTOPTS = 60 // in.h:93:1: 110 IPPROTO_EGP = 8 // in.h:78:1: 111 IPPROTO_ENCAP = 98 // in.h:96:1: 112 IPPROTO_EON = 80 // in.h:94:1: 113 IPPROTO_ESP = 50 // in.h:88:1: 114 IPPROTO_ETHERIP = 97 // in.h:95:1: 115 IPPROTO_FRAGMENT = 44 // in.h:85:1: 116 IPPROTO_GGP = 3 // in.h:74:1: 117 IPPROTO_GRE = 47 // in.h:87:1: 118 IPPROTO_HOPOPTS = 0 // in.h:71:1: 119 IPPROTO_ICMP = 1 // in.h:72:1: 120 IPPROTO_ICMPV6 = 58 // in.h:91:1: 121 IPPROTO_IDP = 22 // in.h:81:1: 122 IPPROTO_IGMP = 2 // in.h:73:1: 123 IPPROTO_IP = 0 // in.h:70:1: 124 IPPROTO_IPCOMP = 108 // in.h:98:1: 125 IPPROTO_IPIP = 4 // in.h:75:1: 126 IPPROTO_IPV4 = 4 // in.h:76:1: 127 IPPROTO_IPV6 = 41 // in.h:83:1: 128 IPPROTO_MAX = 256 // in.h:106:1: 129 IPPROTO_MAXID = 259 // in.h:393:1: 130 IPPROTO_MOBILE = 55 // in.h:90:1: 131 IPPROTO_MPLS = 137 // in.h:102:1: 132 IPPROTO_NONE = 59 // in.h:92:1: 133 IPPROTO_PFSYNC = 240 // in.h:103:1: 134 IPPROTO_PIM = 103 // in.h:97:1: 135 IPPROTO_PUP = 12 // in.h:79:1: 136 IPPROTO_RAW = 255 // in.h:104:1: 137 IPPROTO_ROUTING = 43 // in.h:84:1: 138 IPPROTO_RSVP = 46 // in.h:86:1: 139 IPPROTO_SCTP = 132 // in.h:100:1: 140 IPPROTO_TCP = 6 // in.h:77:1: 141 IPPROTO_TP = 29 // in.h:82:1: 142 IPPROTO_UDP = 17 // in.h:80:1: 143 IPPROTO_UDPLITE = 136 // in.h:101:1: 144 IPSEC6_OUTSA = 56 // in6.h:337:1: 145 IPSEC_AUTH_LEVEL_DEFAULT = 1 // in.h:336:1: 146 IPSEC_ESP_NETWORK_LEVEL_DEFAULT = 1 // in.h:338:1: 147 IPSEC_ESP_TRANS_LEVEL_DEFAULT = 1 // in.h:337:1: 148 IPSEC_IPCOMP_LEVEL_DEFAULT = 1 // in.h:339:1: 149 IPSEC_LEVEL_AVAIL = 0x01 // in.h:330:1: 150 IPSEC_LEVEL_BYPASS = 0x00 // in.h:328:1: 151 IPSEC_LEVEL_DEFAULT = 1 // in.h:334:1: 152 IPSEC_LEVEL_NONE = 0x00 // in.h:329:1: 153 IPSEC_LEVEL_REQUIRE = 0x03 // in.h:332:1: 154 IPSEC_LEVEL_UNIQUE = 0x04 // in.h:333:1: 155 IPSEC_LEVEL_USE = 0x02 // in.h:331:1: 156 IPV6CTL_ACCEPT_RTADV = 12 // in6.h:575:1: 157 IPV6CTL_AUTO_FLOWLABEL = 17 // in6.h:579:1: 158 IPV6CTL_DAD_COUNT = 16 // in6.h:578:1: 159 IPV6CTL_DAD_PENDING = 49 // in6.h:589:1: 160 IPV6CTL_DEFHLIM = 3 // in6.h:567:1: 161 IPV6CTL_DEFMCASTHLIM = 18 // in6.h:580:1: 162 IPV6CTL_FORWARDING = 1 // in6.h:565:1: 163 IPV6CTL_FORWSRCRT = 5 // in6.h:568:1: 164 IPV6CTL_HDRNESTLIMIT = 15 // in6.h:577:1: 165 IPV6CTL_IFQUEUE = 51 // in6.h:591:1: 166 IPV6CTL_LOG_INTERVAL = 14 // in6.h:576:1: 167 IPV6CTL_MAXDYNROUTES = 48 // in6.h:588:1: 168 IPV6CTL_MAXFRAGPACKETS = 9 // in6.h:572:1: 169 IPV6CTL_MAXFRAGS = 41 // in6.h:583:1: 170 IPV6CTL_MAXID = 55 // in6.h:595:1: 171 IPV6CTL_MCAST_PMTU = 44 // in6.h:586:1: 172 IPV6CTL_MFORWARDING = 42 // in6.h:584:1: 173 IPV6CTL_MRTMFC = 53 // in6.h:593:1: 174 IPV6CTL_MRTMIF = 52 // in6.h:592:1: 175 IPV6CTL_MRTPROTO = 8 // in6.h:571:1: 176 IPV6CTL_MRTSTATS = 7 // in6.h:570:1: 177 IPV6CTL_MTUDISCTIMEOUT = 50 // in6.h:590:1: 178 IPV6CTL_MULTIPATH = 43 // in6.h:585:1: 179 IPV6CTL_NEIGHBORGCTHRESH = 45 // in6.h:587:1: 180 IPV6CTL_SENDREDIRECTS = 2 // in6.h:566:1: 181 IPV6CTL_SOIIKEY = 54 // in6.h:594:1: 182 IPV6CTL_SOURCECHECK = 10 // in6.h:573:1: 183 IPV6CTL_SOURCECHECK_LOGINT = 11 // in6.h:574:1: 184 IPV6CTL_STATS = 6 // in6.h:569:1: 185 IPV6CTL_USE_DEPRECATED = 21 // in6.h:581:1: 186 IPV6PROTO_MAXID = 259 // in6.h:470:1: 187 IPV6_AUTH_LEVEL = 53 // in6.h:333:1: 188 IPV6_AUTOFLOWLABEL = 59 // in6.h:341:1: 189 IPV6_CHECKSUM = 26 // in6.h:307:1: 190 IPV6_DEFAULT_MULTICAST_HOPS = 1 // in6.h:360:1: 191 IPV6_DEFAULT_MULTICAST_LOOP = 1 // in6.h:361:1: 192 IPV6_DONTFRAG = 62 // in6.h:345:1: 193 IPV6_DSTOPTS = 50 // in6.h:330:1: 194 IPV6_ESP_NETWORK_LEVEL = 55 // in6.h:335:1: 195 IPV6_ESP_TRANS_LEVEL = 54 // in6.h:334:1: 196 IPV6_HOPLIMIT = 47 // in6.h:327:1: 197 IPV6_HOPOPTS = 49 // in6.h:329:1: 198 IPV6_IPCOMP_LEVEL = 60 // in6.h:342:1: 199 IPV6_JOIN_GROUP = 12 // in6.h:300:1: 200 IPV6_LEAVE_GROUP = 13 // in6.h:301:1: 201 IPV6_MINHOPCOUNT = 65 // in6.h:349:1: 202 IPV6_MULTICAST_HOPS = 10 // in6.h:298:1: 203 IPV6_MULTICAST_IF = 9 // in6.h:297:1: 204 IPV6_MULTICAST_LOOP = 11 // in6.h:299:1: 205 IPV6_NEXTHOP = 48 // in6.h:328:1: 206 IPV6_PATHMTU = 44 // in6.h:322:1: 207 IPV6_PIPEX = 63 // in6.h:346:1: 208 IPV6_PKTINFO = 46 // in6.h:326:1: 209 IPV6_PORTRANGE = 14 // in6.h:302:1: 210 IPV6_PORTRANGE_DEFAULT = 0 // in6.h:393:1: 211 IPV6_PORTRANGE_HIGH = 1 // in6.h:394:1: 212 IPV6_PORTRANGE_LOW = 2 // in6.h:395:1: 213 IPV6_RECVDSTOPTS = 40 // in6.h:317:1: 214 IPV6_RECVDSTPORT = 64 // in6.h:348:1: 215 IPV6_RECVHOPLIMIT = 37 // in6.h:314:1: 216 IPV6_RECVHOPOPTS = 39 // in6.h:316:1: 217 IPV6_RECVPATHMTU = 43 // in6.h:320:1: 218 IPV6_RECVPKTINFO = 36 // in6.h:313:1: 219 IPV6_RECVRTHDR = 38 // in6.h:315:1: 220 IPV6_RECVTCLASS = 57 // in6.h:339:1: 221 IPV6_RTABLE = 0x1021 // in6.h:351:1: 222 IPV6_RTHDR = 51 // in6.h:331:1: 223 IPV6_RTHDRDSTOPTS = 35 // in6.h:311:1: 224 IPV6_RTHDR_LOOSE = 0 // in6.h:354:1: 225 IPV6_RTHDR_TYPE_0 = 0 // in6.h:355:1: 226 IPV6_TCLASS = 61 // in6.h:344:1: 227 IPV6_UNICAST_HOPS = 4 // in6.h:296:1: 228 IPV6_USE_MIN_MTU = 42 // in6.h:319:1: 229 IPV6_V6ONLY = 27 // in6.h:308:1: 230 IP_ADD_MEMBERSHIP = 12 // in.h:297:1: 231 IP_AUTH_LEVEL = 20 // in.h:300:1: 232 IP_DEFAULT_MULTICAST_LOOP = 1 // in.h:347:1: 233 IP_DEFAULT_MULTICAST_TTL = 1 // in.h:346:1: 234 IP_DROP_MEMBERSHIP = 13 // in.h:298:1: 235 IP_ESP_NETWORK_LEVEL = 22 // in.h:302:1: 236 IP_ESP_TRANS_LEVEL = 21 // in.h:301:1: 237 IP_HDRINCL = 2 // in.h:287:1: 238 IP_IPCOMP_LEVEL = 29 // in.h:309:1: 239 IP_IPDEFTTL = 37 // in.h:317:1: 240 IP_IPSECFLOWINFO = 36 // in.h:316:1: 241 IP_IPSEC_LOCAL_AUTH = 27 // in.h:307:1: 242 IP_IPSEC_LOCAL_CRED = 25 // in.h:305:1: 243 IP_IPSEC_LOCAL_ID = 23 // in.h:303:1: 244 IP_IPSEC_REMOTE_AUTH = 28 // in.h:308:1: 245 IP_IPSEC_REMOTE_CRED = 26 // in.h:306:1: 246 IP_IPSEC_REMOTE_ID = 24 // in.h:304:1: 247 IP_MAX_MEMBERSHIPS = 4095 // in.h:354:1: 248 IP_MINTTL = 32 // in.h:312:1: 249 IP_MIN_MEMBERSHIPS = 15 // in.h:353:1: 250 IP_MULTICAST_IF = 9 // in.h:294:1: 251 IP_MULTICAST_LOOP = 11 // in.h:296:1: 252 IP_MULTICAST_TTL = 10 // in.h:295:1: 253 IP_OPTIONS = 1 // in.h:286:1: 254 IP_PIPEX = 34 // in.h:314:1: 255 IP_PORTRANGE = 19 // in.h:299:1: 256 IP_PORTRANGE_DEFAULT = 0 // in.h:374:1: 257 IP_PORTRANGE_HIGH = 1 // in.h:375:1: 258 IP_PORTRANGE_LOW = 2 // in.h:376:1: 259 IP_RECVDSTADDR = 7 // in.h:292:1: 260 IP_RECVDSTPORT = 33 // in.h:313:1: 261 IP_RECVIF = 30 // in.h:310:1: 262 IP_RECVOPTS = 5 // in.h:290:1: 263 IP_RECVRETOPTS = 6 // in.h:291:1: 264 IP_RECVRTABLE = 35 // in.h:315:1: 265 IP_RECVTTL = 31 // in.h:311:1: 266 IP_RETOPTS = 8 // in.h:293:1: 267 IP_RTABLE = 0x1021 // in.h:321:1: 268 IP_SENDSRCADDR = 7 // in.h:318:1: 269 IP_TOS = 3 // in.h:288:1: 270 IP_TTL = 4 // in.h:289:1: 271 LITTLE_ENDIAN = 1234 // endian.h:44:1: 272 NETDB_INTERNAL = -1 // netdb.h:149:1: 273 NETDB_SUCCESS = 0 // netdb.h:150:1: 274 NI_DGRAM = 16 // netdb.h:175:1: 275 NI_MAXHOST = 256 // netdb.h:179:1: 276 NI_MAXSERV = 32 // netdb.h:180:1: 277 NI_NAMEREQD = 8 // netdb.h:174:1: 278 NI_NOFQDN = 4 // netdb.h:173:1: 279 NI_NUMERICHOST = 1 // netdb.h:171:1: 280 NI_NUMERICSERV = 2 // netdb.h:172:1: 281 NO_ADDRESS = 4 // netdb.h:155:1: 282 NO_DATA = 4 // netdb.h:154:1: 283 NO_RECOVERY = 3 // netdb.h:153:1: 284 PDP_ENDIAN = 3412 // endian.h:46:1: 285 RRSET_VALIDATED = 1 // netdb.h:218:1: 286 SCOPE_DELIMITER = 37 // netdb.h:185:1: 287 SIN6_LEN = 0 // in6.h:104:1: 288 TRY_AGAIN = 2 // netdb.h:152:1: 289 X_BIG_ENDIAN = 4321 // _endian.h:43:1: 290 X_BYTE_ORDER = 1234 // endian.h:58:1: 291 X_CLOCKID_T_DEFINED_ = 0 // types.h:162:1: 292 X_CLOCK_T_DEFINED_ = 0 // types.h:157:1: 293 X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: 294 X_ILP32 = 1 // <predefined>:1:1: 295 X_INT16_T_DEFINED_ = 0 // types.h:84:1: 296 X_INT32_T_DEFINED_ = 0 // types.h:94:1: 297 X_INT64_T_DEFINED_ = 0 // types.h:104:1: 298 X_INT8_T_DEFINED_ = 0 // types.h:74:1: 299 X_IN_ADDR_DECLARED = 0 // in.h:163:1: 300 X_IN_TYPES_DEFINED_ = 0 // in.h:62:1: 301 X_LITTLE_ENDIAN = 1234 // _endian.h:42:1: 302 X_MACHINE_CDEFS_H_ = 0 // cdefs.h:9:1: 303 X_MACHINE_ENDIAN_H_ = 0 // endian.h:28:1: 304 X_MACHINE__TYPES_H_ = 0 // _types.h:36:1: 305 X_MAX_PAGE_SHIFT = 12 // _types.h:52:1: 306 X_NETDB_H_ = 0 // netdb.h:88:1: 307 X_NETINET6_IN6_H_ = 0 // in6.h:69:1: 308 X_NETINET_IN_H_ = 0 // in.h:39:1: 309 X_OFF_T_DEFINED_ = 0 // types.h:192:1: 310 X_PATH_HEQUIV = "/etc/hosts.equiv" // netdb.h:97:1: 311 X_PATH_HOSTS = "/etc/hosts" // netdb.h:98:1: 312 X_PATH_NETWORKS = "/etc/networks" // netdb.h:99:1: 313 X_PATH_PROTOCOLS = "/etc/protocols" // netdb.h:100:1: 314 X_PATH_SERVICES = "/etc/services" // netdb.h:101:1: 315 X_PDP_ENDIAN = 3412 // _endian.h:44:1: 316 X_PID_T_DEFINED_ = 0 // types.h:167:1: 317 X_QUAD_HIGHWORD = 1 // _endian.h:95:1: 318 X_QUAD_LOWWORD = 0 // _endian.h:96:1: 319 X_SA_FAMILY_T_DEFINED_ = 0 // in.h:57:1: 320 X_SIZE_T_DEFINED_ = 0 // types.h:172:1: 321 X_SOCKLEN_T_DEFINED_ = 0 // in6.h:400:1: 322 X_SSIZE_T_DEFINED_ = 0 // types.h:177:1: 323 X_STACKALIGNBYTES = 15 // _types.h:49:1: 324 X_SYS_CDEFS_H_ = 0 // cdefs.h:39:1: 325 X_SYS_ENDIAN_H_ = 0 // endian.h:38:1: 326 X_SYS_TYPES_H_ = 0 // types.h:41:1: 327 X_SYS__ENDIAN_H_ = 0 // _endian.h:34:1: 328 X_SYS__TYPES_H_ = 0 // _types.h:35:1: 329 X_TIMER_T_DEFINED_ = 0 // types.h:187:1: 330 X_TIME_T_DEFINED_ = 0 // types.h:182:1: 331 X_UINT16_T_DEFINED_ = 0 // types.h:89:1: 332 X_UINT32_T_DEFINED_ = 0 // types.h:99:1: 333 X_UINT64_T_DEFINED_ = 0 // types.h:109:1: 334 X_UINT8_T_DEFINED_ = 0 // types.h:79:1: 335 I386 = 1 // <predefined>:339:1: 336 Unix = 1 // <predefined>:340:1: 337 ) 338 339 type Ptrdiff_t = int32 /* <builtin>:3:26 */ 340 341 type Size_t = uint32 /* <builtin>:9:23 */ 342 343 type Wchar_t = int32 /* <builtin>:15:24 */ 344 345 type X__builtin_va_list = uintptr /* <builtin>:46:14 */ 346 type X__float128 = float64 /* <builtin>:47:21 */ 347 348 // $OpenBSD: netdb.h,v 1.33 2015/01/18 20:29:31 deraadt Exp $ 349 350 // ++Copyright++ 1980, 1983, 1988, 1993 351 // - 352 // Copyright (c) 1980, 1983, 1988, 1993 353 // The Regents of the University of California. All rights reserved. 354 // 355 // Redistribution and use in source and binary forms, with or without 356 // modification, are permitted provided that the following conditions 357 // are met: 358 // 1. Redistributions of source code must retain the above copyright 359 // notice, this list of conditions and the following disclaimer. 360 // 2. Redistributions in binary form must reproduce the above copyright 361 // notice, this list of conditions and the following disclaimer in the 362 // documentation and/or other materials provided with the distribution. 363 // 3. Neither the name of the University nor the names of its contributors 364 // may be used to endorse or promote products derived from this software 365 // without specific prior written permission. 366 // 367 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 368 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 369 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 370 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 371 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 372 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 373 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 374 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 375 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 376 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 377 // SUCH DAMAGE. 378 // - 379 // Portions Copyright (c) 1993 by Digital Equipment Corporation. 380 // 381 // Permission to use, copy, modify, and distribute this software for any 382 // purpose with or without fee is hereby granted, provided that the above 383 // copyright notice and this permission notice appear in all copies, and that 384 // the name of Digital Equipment Corporation not be used in advertising or 385 // publicity pertaining to distribution of the document or software without 386 // specific, written prior permission. 387 // 388 // THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL 389 // WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES 390 // OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT 391 // CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 392 // DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 393 // PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 394 // ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 395 // SOFTWARE. 396 // - 397 // --Copyright-- 398 399 // Copyright (c) 1995, 1996, 1997, 1998, 1999 Craig Metz. All rights reserved. 400 // 401 // Redistribution and use in source and binary forms, with or without 402 // modification, are permitted provided that the following conditions 403 // are met: 404 // 1. Redistributions of source code must retain the above copyright 405 // notice, this list of conditions and the following disclaimer. 406 // 2. Redistributions in binary form must reproduce the above copyright 407 // notice, this list of conditions and the following disclaimer in the 408 // documentation and/or other materials provided with the distribution. 409 // 3. Neither the name of the author nor the names of any contributors 410 // may be used to endorse or promote products derived from this software 411 // without specific prior written permission. 412 // 413 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 414 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 415 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 416 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 417 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 418 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 419 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 420 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 421 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 422 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 423 // SUCH DAMAGE. 424 425 // @(#)netdb.h 8.1 (Berkeley) 6/2/93 426 // $From: netdb.h,v 8.7 1996/05/09 05:59:09 vixie Exp $ 427 428 // $OpenBSD: in.h,v 1.141 2021/06/02 00:09:57 dlg Exp $ 429 // $NetBSD: in.h,v 1.20 1996/02/13 23:41:47 christos Exp $ 430 431 // Copyright (c) 1982, 1986, 1990, 1993 432 // The Regents of the University of California. All rights reserved. 433 // 434 // Redistribution and use in source and binary forms, with or without 435 // modification, are permitted provided that the following conditions 436 // are met: 437 // 1. Redistributions of source code must retain the above copyright 438 // notice, this list of conditions and the following disclaimer. 439 // 2. Redistributions in binary form must reproduce the above copyright 440 // notice, this list of conditions and the following disclaimer in the 441 // documentation and/or other materials provided with the distribution. 442 // 3. Neither the name of the University nor the names of its contributors 443 // may be used to endorse or promote products derived from this software 444 // without specific prior written permission. 445 // 446 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 447 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 448 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 449 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 450 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 451 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 452 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 453 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 454 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 455 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 456 // SUCH DAMAGE. 457 458 // Constants and structures defined by the internet system, 459 // Per RFC 790, September 1981, and numerous additions. 460 461 // $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ 462 // $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ 463 464 // Copyright (c) 1991, 1993 465 // The Regents of the University of California. All rights reserved. 466 // 467 // This code is derived from software contributed to Berkeley by 468 // Berkeley Software Design, Inc. 469 // 470 // Redistribution and use in source and binary forms, with or without 471 // modification, are permitted provided that the following conditions 472 // are met: 473 // 1. Redistributions of source code must retain the above copyright 474 // notice, this list of conditions and the following disclaimer. 475 // 2. Redistributions in binary form must reproduce the above copyright 476 // notice, this list of conditions and the following disclaimer in the 477 // documentation and/or other materials provided with the distribution. 478 // 3. Neither the name of the University nor the names of its contributors 479 // may be used to endorse or promote products derived from this software 480 // without specific prior written permission. 481 // 482 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 483 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 484 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 485 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 486 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 487 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 488 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 489 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 490 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 491 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 492 // SUCH DAMAGE. 493 // 494 // @(#)cdefs.h 8.7 (Berkeley) 1/21/94 495 496 // $OpenBSD: cdefs.h,v 1.10 2013/03/28 17:30:45 martynas Exp $ 497 498 // Written by J.T. Conklin <jtc@wimsey.com> 01/17/95. 499 // Public domain. 500 501 // Macro to test if we're using a specific version of gcc or later. 502 503 // The __CONCAT macro is used to concatenate parts of symbol names, e.g. 504 // with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. 505 // The __CONCAT macro is a bit tricky -- make sure you don't put spaces 506 // in between its arguments. Do not use __CONCAT on double-quoted strings, 507 // such as those from the __STRING macro: to concatenate strings just put 508 // them next to each other. 509 510 // GCC1 and some versions of GCC2 declare dead (non-returning) and 511 // pure (no side effects) functions using "volatile" and "const"; 512 // unfortunately, these then cause warnings under "-ansi -pedantic". 513 // GCC >= 2.5 uses the __attribute__((attrs)) style. All of these 514 // work for GNU C++ (modulo a slight glitch in the C++ grammar in 515 // the distribution version of 2.5.5). 516 517 // __returns_twice makes the compiler not assume the function 518 // only returns once. This affects registerisation of variables: 519 // even local variables need to be in memory across such a call. 520 // Example: setjmp() 521 522 // __only_inline makes the compiler only use this function definition 523 // for inlining; references that can't be inlined will be left as 524 // external references instead of generating a local copy. The 525 // matching library should include a simple extern definition for 526 // the function to handle those references. c.f. ctype.h 527 528 // GNU C version 2.96 adds explicit branch prediction so that 529 // the CPU back-end can hint the processor and also so that 530 // code blocks can be reordered such that the predicted path 531 // sees a more linear flow, thus improving cache behavior, etc. 532 // 533 // The following two macros provide us with a way to utilize this 534 // compiler feature. Use __predict_true() if you expect the expression 535 // to evaluate to true, and __predict_false() if you expect the 536 // expression to evaluate to false. 537 // 538 // A few notes about usage: 539 // 540 // * Generally, __predict_false() error condition checks (unless 541 // you have some _strong_ reason to do otherwise, in which case 542 // document it), and/or __predict_true() `no-error' condition 543 // checks, assuming you want to optimize for the no-error case. 544 // 545 // * Other than that, if you don't know the likelihood of a test 546 // succeeding from empirical or other `hard' evidence, don't 547 // make predictions. 548 // 549 // * These are meant to be used in places that are run `a lot'. 550 // It is wasteful to make predictions in code that is run 551 // seldomly (e.g. at subsystem initialization time) as the 552 // basic block reordering that this affects can often generate 553 // larger code. 554 555 // Delete pseudo-keywords wherever they are not available or needed. 556 557 // The __packed macro indicates that a variable or structure members 558 // should have the smallest possible alignment, despite any host CPU 559 // alignment requirements. 560 // 561 // The __aligned(x) macro specifies the minimum alignment of a 562 // variable or structure. 563 // 564 // These macros together are useful for describing the layout and 565 // alignment of messages exchanged with hardware or other systems. 566 567 // "The nice thing about standards is that there are so many to choose from." 568 // There are a number of "feature test macros" specified by (different) 569 // standards that determine which interfaces and types the header files 570 // should expose. 571 // 572 // Because of inconsistencies in these macros, we define our own 573 // set in the private name space that end in _VISIBLE. These are 574 // always defined and so headers can test their values easily. 575 // Things can get tricky when multiple feature macros are defined. 576 // We try to take the union of all the features requested. 577 // 578 // The following macros are guaranteed to have a value after cdefs.h 579 // has been included: 580 // __POSIX_VISIBLE 581 // __XPG_VISIBLE 582 // __ISO_C_VISIBLE 583 // __BSD_VISIBLE 584 585 // X/Open Portability Guides and Single Unix Specifications. 586 // _XOPEN_SOURCE XPG3 587 // _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 588 // _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 589 // _XOPEN_SOURCE == 500 XPG5 590 // _XOPEN_SOURCE == 520 XPG5v2 591 // _XOPEN_SOURCE == 600 POSIX 1003.1-2001 with XSI 592 // _XOPEN_SOURCE == 700 POSIX 1003.1-2008 with XSI 593 // 594 // The XPG spec implies a specific value for _POSIX_C_SOURCE. 595 596 // POSIX macros, these checks must follow the XOPEN ones above. 597 // 598 // _POSIX_SOURCE == 1 1003.1-1988 (superseded by _POSIX_C_SOURCE) 599 // _POSIX_C_SOURCE == 1 1003.1-1990 600 // _POSIX_C_SOURCE == 2 1003.2-1992 601 // _POSIX_C_SOURCE == 199309L 1003.1b-1993 602 // _POSIX_C_SOURCE == 199506L 1003.1c-1995, 1003.1i-1995, 603 // and the omnibus ISO/IEC 9945-1:1996 604 // _POSIX_C_SOURCE == 200112L 1003.1-2001 605 // _POSIX_C_SOURCE == 200809L 1003.1-2008 606 // 607 // The POSIX spec implies a specific value for __ISO_C_VISIBLE, though 608 // this may be overridden by the _ISOC99_SOURCE macro later. 609 610 // _ANSI_SOURCE means to expose ANSI C89 interfaces only. 611 // If the user defines it in addition to one of the POSIX or XOPEN 612 // macros, assume the POSIX/XOPEN macro(s) should take precedence. 613 614 // _ISOC99_SOURCE, _ISOC11_SOURCE, __STDC_VERSION__, and __cplusplus 615 // override any of the other macros since they are non-exclusive. 616 617 // Finally deal with BSD-specific interfaces that are not covered 618 // by any standards. We expose these when none of the POSIX or XPG 619 // macros is defined or if the user explicitly asks for them. 620 621 // Default values. 622 623 // $OpenBSD: types.h,v 1.49 2022/08/06 13:31:13 semarie Exp $ 624 // $NetBSD: types.h,v 1.29 1996/11/15 22:48:25 jtc Exp $ 625 626 // - 627 // Copyright (c) 1982, 1986, 1991, 1993 628 // The Regents of the University of California. All rights reserved. 629 // (c) UNIX System Laboratories, Inc. 630 // All or some portions of this file are derived from material licensed 631 // to the University of California by American Telephone and Telegraph 632 // Co. or Unix System Laboratories, Inc. and are reproduced herein with 633 // the permission of UNIX System Laboratories, Inc. 634 // 635 // Redistribution and use in source and binary forms, with or without 636 // modification, are permitted provided that the following conditions 637 // are met: 638 // 1. Redistributions of source code must retain the above copyright 639 // notice, this list of conditions and the following disclaimer. 640 // 2. Redistributions in binary form must reproduce the above copyright 641 // notice, this list of conditions and the following disclaimer in the 642 // documentation and/or other materials provided with the distribution. 643 // 3. Neither the name of the University nor the names of its contributors 644 // may be used to endorse or promote products derived from this software 645 // without specific prior written permission. 646 // 647 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 648 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 649 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 650 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 651 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 652 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 653 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 654 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 655 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 656 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 657 // SUCH DAMAGE. 658 // 659 // @(#)types.h 8.4 (Berkeley) 1/21/94 660 661 // $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ 662 // $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ 663 664 // Copyright (c) 1991, 1993 665 // The Regents of the University of California. All rights reserved. 666 // 667 // This code is derived from software contributed to Berkeley by 668 // Berkeley Software Design, Inc. 669 // 670 // Redistribution and use in source and binary forms, with or without 671 // modification, are permitted provided that the following conditions 672 // are met: 673 // 1. Redistributions of source code must retain the above copyright 674 // notice, this list of conditions and the following disclaimer. 675 // 2. Redistributions in binary form must reproduce the above copyright 676 // notice, this list of conditions and the following disclaimer in the 677 // documentation and/or other materials provided with the distribution. 678 // 3. Neither the name of the University nor the names of its contributors 679 // may be used to endorse or promote products derived from this software 680 // without specific prior written permission. 681 // 682 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 683 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 684 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 685 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 686 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 687 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 688 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 689 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 690 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 691 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 692 // SUCH DAMAGE. 693 // 694 // @(#)cdefs.h 8.7 (Berkeley) 1/21/94 695 696 // $OpenBSD: endian.h,v 1.25 2014/12/21 04:49:00 guenther Exp $ 697 698 // - 699 // Copyright (c) 1997 Niklas Hallqvist. All rights reserved. 700 // 701 // Redistribution and use in source and binary forms, with or without 702 // modification, are permitted provided that the following conditions 703 // are met: 704 // 1. Redistributions of source code must retain the above copyright 705 // notice, this list of conditions and the following disclaimer. 706 // 2. Redistributions in binary form must reproduce the above copyright 707 // notice, this list of conditions and the following disclaimer in the 708 // documentation and/or other materials provided with the distribution. 709 // 710 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 711 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 712 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 713 // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 714 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 715 // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 716 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 717 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 718 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 719 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 720 721 // Public definitions for little- and big-endian systems. 722 // This file should be included as <endian.h> in userspace and as 723 // <sys/endian.h> in the kernel. 724 // 725 // System headers that need endian information but that can't or don't 726 // want to export the public names here should include <sys/_endian.h> 727 // and use the internal names: _BYTE_ORDER, _*_ENDIAN, etc. 728 729 // $OpenBSD: cdefs.h,v 1.43 2018/10/29 17:10:40 guenther Exp $ 730 // $NetBSD: cdefs.h,v 1.16 1996/04/03 20:46:39 christos Exp $ 731 732 // Copyright (c) 1991, 1993 733 // The Regents of the University of California. All rights reserved. 734 // 735 // This code is derived from software contributed to Berkeley by 736 // Berkeley Software Design, Inc. 737 // 738 // Redistribution and use in source and binary forms, with or without 739 // modification, are permitted provided that the following conditions 740 // are met: 741 // 1. Redistributions of source code must retain the above copyright 742 // notice, this list of conditions and the following disclaimer. 743 // 2. Redistributions in binary form must reproduce the above copyright 744 // notice, this list of conditions and the following disclaimer in the 745 // documentation and/or other materials provided with the distribution. 746 // 3. Neither the name of the University nor the names of its contributors 747 // may be used to endorse or promote products derived from this software 748 // without specific prior written permission. 749 // 750 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 751 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 752 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 753 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 754 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 755 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 756 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 757 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 758 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 759 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 760 // SUCH DAMAGE. 761 // 762 // @(#)cdefs.h 8.7 (Berkeley) 1/21/94 763 764 // $OpenBSD: _endian.h,v 1.8 2018/01/11 23:13:37 dlg Exp $ 765 766 // - 767 // Copyright (c) 1997 Niklas Hallqvist. All rights reserved. 768 // 769 // Redistribution and use in source and binary forms, with or without 770 // modification, are permitted provided that the following conditions 771 // are met: 772 // 1. Redistributions of source code must retain the above copyright 773 // notice, this list of conditions and the following disclaimer. 774 // 2. Redistributions in binary form must reproduce the above copyright 775 // notice, this list of conditions and the following disclaimer in the 776 // documentation and/or other materials provided with the distribution. 777 // 778 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 779 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 780 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 781 // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 782 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 783 // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 784 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 785 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 786 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 787 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 788 789 // Internal endianness macros. This pulls in <machine/endian.h> to 790 // get the correct setting direction for the platform and sets internal 791 // ('__' prefix) macros appropriately. 792 793 // $OpenBSD: _types.h,v 1.10 2022/08/06 13:31:13 semarie Exp $ 794 795 // - 796 // Copyright (c) 1990, 1993 797 // The Regents of the University of California. All rights reserved. 798 // 799 // Redistribution and use in source and binary forms, with or without 800 // modification, are permitted provided that the following conditions 801 // are met: 802 // 1. Redistributions of source code must retain the above copyright 803 // notice, this list of conditions and the following disclaimer. 804 // 2. Redistributions in binary form must reproduce the above copyright 805 // notice, this list of conditions and the following disclaimer in the 806 // documentation and/or other materials provided with the distribution. 807 // 3. Neither the name of the University nor the names of its contributors 808 // may be used to endorse or promote products derived from this software 809 // without specific prior written permission. 810 // 811 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 812 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 813 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 814 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 815 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 816 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 817 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 818 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 819 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 820 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 821 // SUCH DAMAGE. 822 // 823 // @(#)types.h 8.3 (Berkeley) 1/5/94 824 825 // $OpenBSD: _types.h,v 1.23 2018/03/05 01:15:25 deraadt Exp $ 826 827 // - 828 // Copyright (c) 1990, 1993 829 // The Regents of the University of California. All rights reserved. 830 // 831 // Redistribution and use in source and binary forms, with or without 832 // modification, are permitted provided that the following conditions 833 // are met: 834 // 1. Redistributions of source code must retain the above copyright 835 // notice, this list of conditions and the following disclaimer. 836 // 2. Redistributions in binary form must reproduce the above copyright 837 // notice, this list of conditions and the following disclaimer in the 838 // documentation and/or other materials provided with the distribution. 839 // 3. Neither the name of the University nor the names of its contributors 840 // may be used to endorse or promote products derived from this software 841 // without specific prior written permission. 842 // 843 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 844 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 845 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 846 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 847 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 848 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 849 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 850 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 851 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 852 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 853 // SUCH DAMAGE. 854 // 855 // @(#)types.h 8.3 (Berkeley) 1/5/94 856 // @(#)ansi.h 8.2 (Berkeley) 1/4/94 857 858 // _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned 859 // value for all data types (int, long, ...). The result is an 860 // unsigned long and must be cast to any desired pointer type. 861 // 862 // _ALIGNED_POINTER is a boolean macro that checks whether an address 863 // is valid to fetch data elements of type t from on this architecture. 864 // This does not reflect the optimal alignment, just the possibility 865 // (within reasonable limits). 866 867 // 7.18.1.1 Exact-width integer types 868 type X__int8_t = int8 /* _types.h:61:22 */ 869 type X__uint8_t = uint8 /* _types.h:62:24 */ 870 type X__int16_t = int16 /* _types.h:63:17 */ 871 type X__uint16_t = uint16 /* _types.h:64:25 */ 872 type X__int32_t = int32 /* _types.h:65:15 */ 873 type X__uint32_t = uint32 /* _types.h:66:23 */ 874 type X__int64_t = int64 /* _types.h:67:20 */ 875 type X__uint64_t = uint64 /* _types.h:68:28 */ 876 877 // 7.18.1.2 Minimum-width integer types 878 type X__int_least8_t = X__int8_t /* _types.h:71:19 */ 879 type X__uint_least8_t = X__uint8_t /* _types.h:72:20 */ 880 type X__int_least16_t = X__int16_t /* _types.h:73:20 */ 881 type X__uint_least16_t = X__uint16_t /* _types.h:74:21 */ 882 type X__int_least32_t = X__int32_t /* _types.h:75:20 */ 883 type X__uint_least32_t = X__uint32_t /* _types.h:76:21 */ 884 type X__int_least64_t = X__int64_t /* _types.h:77:20 */ 885 type X__uint_least64_t = X__uint64_t /* _types.h:78:21 */ 886 887 // 7.18.1.3 Fastest minimum-width integer types 888 type X__int_fast8_t = X__int32_t /* _types.h:81:20 */ 889 type X__uint_fast8_t = X__uint32_t /* _types.h:82:21 */ 890 type X__int_fast16_t = X__int32_t /* _types.h:83:20 */ 891 type X__uint_fast16_t = X__uint32_t /* _types.h:84:21 */ 892 type X__int_fast32_t = X__int32_t /* _types.h:85:20 */ 893 type X__uint_fast32_t = X__uint32_t /* _types.h:86:21 */ 894 type X__int_fast64_t = X__int64_t /* _types.h:87:20 */ 895 type X__uint_fast64_t = X__uint64_t /* _types.h:88:21 */ 896 897 // 7.18.1.4 Integer types capable of holding object pointers 898 type X__intptr_t = int32 /* _types.h:103:16 */ 899 type X__uintptr_t = uint32 /* _types.h:104:24 */ 900 901 // 7.18.1.5 Greatest-width integer types 902 type X__intmax_t = X__int64_t /* _types.h:107:20 */ 903 type X__uintmax_t = X__uint64_t /* _types.h:108:21 */ 904 905 // Register size 906 type X__register_t = int32 /* _types.h:111:16 */ 907 908 // VM system types 909 type X__vaddr_t = uint32 /* _types.h:114:24 */ 910 type X__paddr_t = uint32 /* _types.h:115:24 */ 911 type X__vsize_t = uint32 /* _types.h:116:24 */ 912 type X__psize_t = uint32 /* _types.h:117:24 */ 913 914 // Standard system types 915 type X__double_t = float64 /* _types.h:120:22 */ 916 type X__float_t = float64 /* _types.h:121:22 */ 917 type X__ptrdiff_t = int32 /* _types.h:122:16 */ 918 type X__size_t = uint32 /* _types.h:123:24 */ 919 type X__ssize_t = int32 /* _types.h:124:16 */ 920 type X__va_list = X__builtin_va_list /* _types.h:126:27 */ 921 922 // Wide character support types 923 type X__wchar_t = int32 /* _types.h:133:15 */ 924 type X__wint_t = int32 /* _types.h:135:15 */ 925 type X__rune_t = int32 /* _types.h:136:15 */ 926 type X__wctrans_t = uintptr /* _types.h:137:14 */ 927 type X__wctype_t = uintptr /* _types.h:138:14 */ 928 929 type X__blkcnt_t = X__int64_t /* _types.h:39:19 */ // blocks allocated for file 930 type X__blksize_t = X__int32_t /* _types.h:40:19 */ // optimal blocksize for I/O 931 type X__clock_t = X__int64_t /* _types.h:41:19 */ // ticks in CLOCKS_PER_SEC 932 type X__clockid_t = X__int32_t /* _types.h:42:19 */ // CLOCK_* identifiers 933 type X__cpuid_t = uint32 /* _types.h:43:23 */ // CPU id 934 type X__dev_t = X__int32_t /* _types.h:44:19 */ // device number 935 type X__fixpt_t = X__uint32_t /* _types.h:45:20 */ // fixed point number 936 type X__fsblkcnt_t = X__uint64_t /* _types.h:46:20 */ // file system block count 937 type X__fsfilcnt_t = X__uint64_t /* _types.h:47:20 */ // file system file count 938 type X__gid_t = X__uint32_t /* _types.h:48:20 */ // group id 939 type X__id_t = X__uint32_t /* _types.h:49:20 */ // may contain pid, uid or gid 940 type X__in_addr_t = X__uint32_t /* _types.h:50:20 */ // base type for internet address 941 type X__in_port_t = X__uint16_t /* _types.h:51:20 */ // IP port type 942 type X__ino_t = X__uint64_t /* _types.h:52:20 */ // inode number 943 type X__key_t = int32 /* _types.h:53:15 */ // IPC key (for Sys V IPC) 944 type X__mode_t = X__uint32_t /* _types.h:54:20 */ // permissions 945 type X__nlink_t = X__uint32_t /* _types.h:55:20 */ // link count 946 type X__off_t = X__int64_t /* _types.h:56:19 */ // file offset or size 947 type X__pid_t = X__int32_t /* _types.h:57:19 */ // process id 948 type X__rlim_t = X__uint64_t /* _types.h:58:20 */ // resource limit 949 type X__sa_family_t = X__uint8_t /* _types.h:59:19 */ // sockaddr address family type 950 type X__segsz_t = X__int32_t /* _types.h:60:19 */ // segment size 951 type X__socklen_t = X__uint32_t /* _types.h:61:20 */ // length type for network syscalls 952 type X__suseconds_t = int32 /* _types.h:62:15 */ // microseconds (signed) 953 type X__time_t = X__int64_t /* _types.h:63:19 */ // epoch time 954 type X__timer_t = X__int32_t /* _types.h:64:19 */ // POSIX timer identifiers 955 type X__uid_t = X__uint32_t /* _types.h:65:20 */ // user id 956 type X__useconds_t = X__uint32_t /* _types.h:66:20 */ // microseconds 957 958 // mbstate_t is an opaque object to keep conversion state, during multibyte 959 // stream conversions. The content must not be referenced by user programs. 960 type X__mbstate_t = struct { 961 F__ccgo_pad1 [0]uint32 962 F__mbstate8 [128]int8 963 } /* _types.h:75:3 */ 964 965 // Tell sys/endian.h we have MD variants of the swap macros. 966 967 // Note that these macros evaluate their arguments several times. 968 969 // Public names 970 971 // These are specified to be function-like macros to match the spec 972 973 // POSIX names 974 975 // original BSD names 976 977 // these were exposed here before 978 979 // ancient stuff 980 981 type U_char = uint8 /* types.h:51:23 */ 982 type U_short = uint16 /* types.h:52:24 */ 983 type U_int = uint32 /* types.h:53:22 */ 984 type U_long = uint32 /* types.h:54:23 */ 985 986 type Unchar = uint8 /* types.h:56:23 */ // Sys V compatibility 987 type Ushort = uint16 /* types.h:57:24 */ // Sys V compatibility 988 type Uint = uint32 /* types.h:58:22 */ // Sys V compatibility 989 type Ulong = uint32 /* types.h:59:23 */ // Sys V compatibility 990 991 type Cpuid_t = X__cpuid_t /* types.h:61:19 */ // CPU id 992 type Register_t = X__register_t /* types.h:62:22 */ // register-sized type 993 994 // XXX The exact-width bit types should only be exposed if __BSD_VISIBLE 995 // but the rest of the includes are not ready for that yet. 996 997 type Int8_t = X__int8_t /* types.h:75:19 */ 998 999 type Uint8_t = X__uint8_t /* types.h:80:20 */ 1000 1001 type Int16_t = X__int16_t /* types.h:85:20 */ 1002 1003 type Uint16_t = X__uint16_t /* types.h:90:21 */ 1004 1005 type Int32_t = X__int32_t /* types.h:95:20 */ 1006 1007 type Uint32_t = X__uint32_t /* types.h:100:21 */ 1008 1009 type Int64_t = X__int64_t /* types.h:105:20 */ 1010 1011 type Uint64_t = X__uint64_t /* types.h:110:21 */ 1012 1013 // BSD-style unsigned bits types 1014 type U_int8_t = X__uint8_t /* types.h:114:19 */ 1015 type U_int16_t = X__uint16_t /* types.h:115:20 */ 1016 type U_int32_t = X__uint32_t /* types.h:116:20 */ 1017 type U_int64_t = X__uint64_t /* types.h:117:20 */ 1018 1019 // quads, deprecated in favor of 64 bit int types 1020 type Quad_t = X__int64_t /* types.h:120:19 */ 1021 type U_quad_t = X__uint64_t /* types.h:121:20 */ 1022 1023 // VM system types 1024 type Vaddr_t = X__vaddr_t /* types.h:125:19 */ 1025 type Paddr_t = X__paddr_t /* types.h:126:19 */ 1026 type Vsize_t = X__vsize_t /* types.h:127:19 */ 1027 type Psize_t = X__psize_t /* types.h:128:19 */ 1028 1029 // Standard system types 1030 type Blkcnt_t = X__blkcnt_t /* types.h:132:20 */ // blocks allocated for file 1031 type Blksize_t = X__blksize_t /* types.h:133:21 */ // optimal blocksize for I/O 1032 type Caddr_t = uintptr /* types.h:134:14 */ // core address 1033 type Daddr32_t = X__int32_t /* types.h:135:19 */ // 32-bit disk address 1034 type Daddr_t = X__int64_t /* types.h:136:19 */ // 64-bit disk address 1035 type Dev_t = X__dev_t /* types.h:137:18 */ // device number 1036 type Fixpt_t = X__fixpt_t /* types.h:138:19 */ // fixed point number 1037 type Gid_t = X__gid_t /* types.h:139:18 */ // group id 1038 type Id_t = X__id_t /* types.h:140:17 */ // may contain pid, uid or gid 1039 type Ino_t = X__ino_t /* types.h:141:18 */ // inode number 1040 type Key_t = X__key_t /* types.h:142:18 */ // IPC key (for Sys V IPC) 1041 type Mode_t = X__mode_t /* types.h:143:18 */ // permissions 1042 type Nlink_t = X__nlink_t /* types.h:144:19 */ // link count 1043 type Rlim_t = X__rlim_t /* types.h:145:18 */ // resource limit 1044 type Segsz_t = X__segsz_t /* types.h:146:19 */ // segment size 1045 type Uid_t = X__uid_t /* types.h:147:18 */ // user id 1046 type Useconds_t = X__useconds_t /* types.h:148:22 */ // microseconds 1047 type Suseconds_t = X__suseconds_t /* types.h:149:23 */ // microseconds (signed) 1048 type Fsblkcnt_t = X__fsblkcnt_t /* types.h:150:22 */ // file system block count 1049 type Fsfilcnt_t = X__fsfilcnt_t /* types.h:151:22 */ // file system file count 1050 1051 // The following types may be defined in multiple header files. 1052 type Clock_t = X__clock_t /* types.h:158:19 */ 1053 1054 type Clockid_t = X__clockid_t /* types.h:163:21 */ 1055 1056 type Pid_t = X__pid_t /* types.h:168:18 */ 1057 1058 type Ssize_t = X__ssize_t /* types.h:178:19 */ 1059 1060 type Time_t = X__time_t /* types.h:183:18 */ 1061 1062 type Timer_t = X__timer_t /* types.h:188:19 */ 1063 1064 type Off_t = X__off_t /* types.h:193:18 */ 1065 1066 // Major, minor numbers, dev_t's. 1067 1068 // <sys/_endian.h> is pulled in by <sys/types.h> 1069 1070 type Sa_family_t = X__sa_family_t /* in.h:58:23 */ // sockaddr address family type 1071 1072 type In_addr_t = X__in_addr_t /* in.h:63:21 */ // base type for internet address 1073 type In_port_t = X__in_port_t /* in.h:64:21 */ // IP port type 1074 1075 // Protocols 1076 1077 // Only used internally, so it can be outside the range of valid IP protocols 1078 1079 // From FreeBSD: 1080 // 1081 // Local port number conventions: 1082 // 1083 // When a user does a bind(2) or connect(2) with a port number of zero, 1084 // a non-conflicting local port address is chosen. 1085 // The default range is IPPORT_RESERVED through 1086 // IPPORT_USERRESERVED, although that is settable by sysctl. 1087 // 1088 // A user may set the IPPROTO_IP option IP_PORTRANGE to change this 1089 // default assignment range. 1090 // 1091 // The value IP_PORTRANGE_DEFAULT causes the default behavior. 1092 // 1093 // The value IP_PORTRANGE_HIGH changes the range of candidate port numbers 1094 // into the "high" range. These are reserved for client outbound connections 1095 // which do not want to be filtered by any firewalls. 1096 // 1097 // The value IP_PORTRANGE_LOW changes the range to the "low" are 1098 // that is (by convention) restricted to privileged processes. This 1099 // convention is based on "vouchsafe" principles only. It is only secure 1100 // if you trust the remote host to restrict these ports. 1101 // 1102 // The default range of ports and the high range can be changed by 1103 // sysctl(3). (net.inet.ip.port{hi}{first,last}) 1104 // 1105 // Changing those values has bad security implications if you are 1106 // using a a stateless firewall that is allowing packets outside of that 1107 // range in order to allow transparent outgoing connections. 1108 // 1109 // Such a firewall configuration will generally depend on the use of these 1110 // default values. If you change them, you may find your Security 1111 // Administrator looking for you with a heavy object. 1112 1113 // Ports < IPPORT_RESERVED are reserved for 1114 // privileged processes (e.g. root). 1115 // Ports > IPPORT_USERRESERVED are reserved 1116 // for servers, not necessarily privileged. 1117 1118 // Default local port range to use by setting IP_PORTRANGE_HIGH 1119 1120 // IP Version 4 Internet address (a structure for historical reasons) 1121 type In_addr = struct{ Fs_addr In_addr_t } /* in.h:167:1 */ 1122 1123 // last return value of *_input(), meaning "all job for this pkt is done". 1124 1125 // Definitions of bits in internet address integers. 1126 // On subnets, the decomposition of addresses to host and net parts 1127 // is done according to subnet mask, not the masks here. 1128 // 1129 // By byte-swapping the constants, we avoid ever having to byte-swap IP 1130 // addresses inside the kernel. Unfortunately, user-level programs rely 1131 // on these macros not doing byte-swapping. 1132 1133 // These ones aren't really net and host fields, but routing needn't know. 1134 1135 // IP Version 4 socket address. 1136 type Sockaddr_in = struct { 1137 Fsin_len U_int8_t 1138 Fsin_family Sa_family_t 1139 Fsin_port In_port_t 1140 Fsin_addr struct{ Fs_addr In_addr_t } 1141 Fsin_zero [8]Int8_t 1142 } /* in.h:258:1 */ 1143 1144 // Structure used to describe IP options. 1145 // Used to store options internally, to pass them to a process, 1146 // or to restore options retrieved earlier. 1147 // The ip_dst is used for the first-hop gateway when using a source route 1148 // (this gets put into the header proper). 1149 type Ip_opts = struct { 1150 Fip_dst struct{ Fs_addr In_addr_t } 1151 Fip_opts [40]Int8_t 1152 } /* in.h:273:1 */ 1153 1154 // Options for use with [gs]etsockopt at the IP level. 1155 // First word of comment is data type; bool is stored in int. 1156 // source address to use 1157 1158 // Security levels - IPsec, not IPSO 1159 1160 // Defaults and limits for options 1161 // The imo_membership vector for each socket starts at IP_MIN_MEMBERSHIPS 1162 // and is dynamically allocated at run-time, bounded by IP_MAX_MEMBERSHIPS, 1163 // and is reallocated when needed, sized according to a power-of-two increment. 1164 1165 // Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. 1166 type Ip_mreq = struct { 1167 Fimr_multiaddr struct{ Fs_addr In_addr_t } 1168 Fimr_interface struct{ Fs_addr In_addr_t } 1169 } /* in.h:359:1 */ 1170 1171 type Ip_mreqn = struct { 1172 Fimr_multiaddr struct{ Fs_addr In_addr_t } 1173 Fimr_address struct{ Fs_addr In_addr_t } 1174 Fimr_ifindex int32 1175 } /* in.h:364:1 */ 1176 1177 // Argument for IP_PORTRANGE: 1178 // - which range to search when port is unspecified at bind() or connect() 1179 1180 // Buffer lengths for strings containing printable IP addresses 1181 1182 // Definitions for inet sysctl operations. 1183 // 1184 // Third level is protocol number. 1185 // Fourth level is desired variable within that protocol. 1186 1187 // Names for IP sysctl objects 1188 1189 // INET6 stuff 1190 // $OpenBSD: in6.h,v 1.109 2021/06/02 00:20:50 dlg Exp $ 1191 // $KAME: in6.h,v 1.83 2001/03/29 02:55:07 jinmei Exp $ 1192 1193 // Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 1194 // All rights reserved. 1195 // 1196 // Redistribution and use in source and binary forms, with or without 1197 // modification, are permitted provided that the following conditions 1198 // are met: 1199 // 1. Redistributions of source code must retain the above copyright 1200 // notice, this list of conditions and the following disclaimer. 1201 // 2. Redistributions in binary form must reproduce the above copyright 1202 // notice, this list of conditions and the following disclaimer in the 1203 // documentation and/or other materials provided with the distribution. 1204 // 3. Neither the name of the project nor the names of its contributors 1205 // may be used to endorse or promote products derived from this software 1206 // without specific prior written permission. 1207 // 1208 // THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 1209 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1210 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1211 // ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 1212 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1213 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 1214 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1215 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 1216 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 1217 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 1218 // SUCH DAMAGE. 1219 1220 // Copyright (c) 1982, 1986, 1990, 1993 1221 // The Regents of the University of California. All rights reserved. 1222 // 1223 // Redistribution and use in source and binary forms, with or without 1224 // modification, are permitted provided that the following conditions 1225 // are met: 1226 // 1. Redistributions of source code must retain the above copyright 1227 // notice, this list of conditions and the following disclaimer. 1228 // 2. Redistributions in binary form must reproduce the above copyright 1229 // notice, this list of conditions and the following disclaimer in the 1230 // documentation and/or other materials provided with the distribution. 1231 // 3. Neither the name of the University nor the names of its contributors 1232 // may be used to endorse or promote products derived from this software 1233 // without specific prior written permission. 1234 // 1235 // THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 1236 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1237 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1238 // ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 1239 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1240 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 1241 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1242 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 1243 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 1244 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 1245 // SUCH DAMAGE. 1246 // 1247 // @(#)in.h 8.3 (Berkeley) 1/3/94 1248 1249 // Identification of the network protocol stack 1250 // for *BSD-current/release: http://www.kame.net/dev/cvsweb2.cgi/kame/COVERAGE 1251 // has the table of implementation/integration differences. 1252 1253 // IPv6 address 1254 type In6_addr = struct { 1255 F__u6_addr struct { 1256 F__ccgo_pad1 [0]uint32 1257 F__u6_addr8 [16]U_int8_t 1258 } 1259 } /* in6.h:81:1 */ 1260 1261 // Socket address for IPv6 1262 type Sockaddr_in6 = struct { 1263 Fsin6_len U_int8_t 1264 Fsin6_family Sa_family_t 1265 Fsin6_port In_port_t 1266 Fsin6_flowinfo U_int32_t 1267 Fsin6_addr struct { 1268 F__u6_addr struct { 1269 F__ccgo_pad1 [0]uint32 1270 F__u6_addr8 [16]U_int8_t 1271 } 1272 } 1273 Fsin6_scope_id U_int32_t 1274 } /* in6.h:106:1 */ 1275 1276 // IPv6 route structure 1277 type Route_in6 = struct { 1278 Fro_rt uintptr 1279 Fro_tableid U_long 1280 Fro_dst struct { 1281 Fsin6_len U_int8_t 1282 Fsin6_family Sa_family_t 1283 Fsin6_port In_port_t 1284 Fsin6_flowinfo U_int32_t 1285 Fsin6_addr struct { 1286 F__u6_addr struct { 1287 F__ccgo_pad1 [0]uint32 1288 F__u6_addr8 [16]U_int8_t 1289 } 1290 } 1291 Fsin6_scope_id U_int32_t 1292 } 1293 } /* in6.h:150:1 */ 1294 1295 // Definition of some useful macros to handle IP6 addresses 1296 1297 // Macros started with IPV6_ADDR is KAME local 1298 1299 // Unspecified 1300 1301 // Loopback 1302 1303 // IPv4 compatible 1304 1305 // Mapped 1306 1307 // Unicast Scope 1308 // Note that we must check topmost 10 bits only, not 16 bits (see RFC2373). 1309 1310 // Multicast 1311 1312 // Options for use with [gs]etsockopt at the IPV6 level. 1313 // First word of comment is data type; bool is stored in int. 1314 1315 // new socket options introduced in RFC3542 1316 1317 // More new socket options introduced in RFC3542 1318 1319 // to define items, should talk with KAME guys first, for *BSD compatibility 1320 1321 // Defaults and limits for options 1322 1323 // Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP. 1324 type Ipv6_mreq = struct { 1325 Fipv6mr_multiaddr struct { 1326 F__u6_addr struct { 1327 F__ccgo_pad1 [0]uint32 1328 F__u6_addr8 [16]U_int8_t 1329 } 1330 } 1331 Fipv6mr_interface uint32 1332 } /* in6.h:366:1 */ 1333 1334 // IPV6_PKTINFO: Packet information(RFC3542 sec 6) 1335 type In6_pktinfo = struct { 1336 Fipi6_addr struct { 1337 F__u6_addr struct { 1338 F__ccgo_pad1 [0]uint32 1339 F__u6_addr8 [16]U_int8_t 1340 } 1341 } 1342 Fipi6_ifindex uint32 1343 } /* in6.h:374:1 */ 1344 1345 // Control structure for IPV6_RECVPATHMTU socket option. 1346 // XXX Not allowed here by POSIX, but required by RFC 3542, so go 1347 // XXX with the code on the pavement. 1348 type Ip6_mtuinfo = struct { 1349 Fip6m_addr struct { 1350 Fsin6_len U_int8_t 1351 Fsin6_family Sa_family_t 1352 Fsin6_port In_port_t 1353 Fsin6_flowinfo U_int32_t 1354 Fsin6_addr struct { 1355 F__u6_addr struct { 1356 F__ccgo_pad1 [0]uint32 1357 F__u6_addr8 [16]U_int8_t 1358 } 1359 } 1360 Fsin6_scope_id U_int32_t 1361 } 1362 Fip6m_mtu U_int32_t 1363 } /* in6.h:384:1 */ 1364 1365 // Argument for IPV6_PORTRANGE: 1366 // - which range to search when port is unspecified at bind() or connect() 1367 1368 type Socklen_t = X__socklen_t /* in6.h:401:21 */ 1369 1370 // Structures returned by network data base library. All addresses are 1371 // supplied in host order, and returned in network order (suitable for 1372 // use in system calls). 1373 type Hostent = struct { 1374 Fh_name uintptr 1375 Fh_aliases uintptr 1376 Fh_addrtype int32 1377 Fh_length int32 1378 Fh_addr_list uintptr 1379 } /* netdb.h:108:1 */ 1380 1381 // Assumption here is that a network number 1382 // fits in an in_addr_t -- probably a poor one. 1383 type Netent = struct { 1384 Fn_name uintptr 1385 Fn_aliases uintptr 1386 Fn_addrtype int32 1387 Fn_net In_addr_t 1388 } /* netdb.h:121:1 */ 1389 1390 type Servent = struct { 1391 Fs_name uintptr 1392 Fs_aliases uintptr 1393 Fs_port int32 1394 Fs_proto uintptr 1395 } /* netdb.h:128:1 */ 1396 1397 type Protoent = struct { 1398 Fp_name uintptr 1399 Fp_aliases uintptr 1400 Fp_proto int32 1401 } /* netdb.h:135:1 */ 1402 1403 // Error return codes from gethostbyname() and gethostbyaddr() 1404 // (left in extern int h_errno). 1405 1406 // Values for getaddrinfo() and getnameinfo() 1407 // valid flags for addrinfo 1408 1409 // #define NI_NUMERICSCOPE 32 return the scope number, not the name 1410 1411 // Scope delimit character (KAME hack) 1412 1413 type Addrinfo = struct { 1414 Fai_flags int32 1415 Fai_family int32 1416 Fai_socktype int32 1417 Fai_protocol int32 1418 Fai_addrlen Socklen_t 1419 Fai_addr uintptr 1420 Fai_canonname uintptr 1421 Fai_next uintptr 1422 } /* netdb.h:203:1 */ 1423 1424 // Flags for getrrsetbyname() 1425 1426 // Return codes for getrrsetbyname() 1427 1428 // Structures used by getrrsetbyname() and freerrset() 1429 type Rdatainfo = struct { 1430 Frdi_length uint32 1431 Frdi_data uintptr 1432 } /* netdb.h:233:1 */ 1433 1434 type Rrsetinfo = struct { 1435 Frri_flags uint32 1436 Frri_rdclass uint32 1437 Frri_rdtype uint32 1438 Frri_ttl uint32 1439 Frri_nrdatas uint32 1440 Frri_nsigs uint32 1441 Frri_name uintptr 1442 Frri_rdatas uintptr 1443 Frri_sigs uintptr 1444 } /* netdb.h:238:1 */ 1445 1446 type Servent_data = struct { 1447 Ffp uintptr 1448 Faliases uintptr 1449 Fmaxaliases int32 1450 Fstayopen int32 1451 Fline uintptr 1452 } /* netdb.h:250:1 */ 1453 1454 type Protoent_data = struct { 1455 Ffp uintptr 1456 Faliases uintptr 1457 Fmaxaliases int32 1458 Fstayopen int32 1459 Fline uintptr 1460 } /* netdb.h:258:1 */ 1461 1462 var _ int8 /* gen.c:2:13: */