github.com/afumu/libc@v0.0.6/netinet/in/in_linux_amd64.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_linux_amd64.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_ALG = 38 // socket.h:133:1: 19 AF_APPLETALK = 5 // socket.h:99:1: 20 AF_ASH = 18 // socket.h:113:1: 21 AF_ATMPVC = 8 // socket.h:102:1: 22 AF_ATMSVC = 20 // socket.h:115:1: 23 AF_AX25 = 3 // socket.h:97:1: 24 AF_BLUETOOTH = 31 // socket.h:126:1: 25 AF_BRIDGE = 7 // socket.h:101:1: 26 AF_CAIF = 37 // socket.h:132:1: 27 AF_CAN = 29 // socket.h:124:1: 28 AF_DECnet = 12 // socket.h:106:1: 29 AF_ECONET = 19 // socket.h:114:1: 30 AF_FILE = 1 // socket.h:95:1: 31 AF_IB = 27 // socket.h:122:1: 32 AF_IEEE802154 = 36 // socket.h:131:1: 33 AF_INET = 2 // socket.h:96:1: 34 AF_INET6 = 10 // socket.h:104:1: 35 AF_IPX = 4 // socket.h:98:1: 36 AF_IRDA = 23 // socket.h:118:1: 37 AF_ISDN = 34 // socket.h:129:1: 38 AF_IUCV = 32 // socket.h:127:1: 39 AF_KCM = 41 // socket.h:136:1: 40 AF_KEY = 15 // socket.h:109:1: 41 AF_LLC = 26 // socket.h:121:1: 42 AF_LOCAL = 1 // socket.h:93:1: 43 AF_MAX = 45 // socket.h:140:1: 44 AF_MPLS = 28 // socket.h:123:1: 45 AF_NETBEUI = 13 // socket.h:107:1: 46 AF_NETLINK = 16 // socket.h:110:1: 47 AF_NETROM = 6 // socket.h:100:1: 48 AF_NFC = 39 // socket.h:134:1: 49 AF_PACKET = 17 // socket.h:112:1: 50 AF_PHONET = 35 // socket.h:130:1: 51 AF_PPPOX = 24 // socket.h:119:1: 52 AF_QIPCRTR = 42 // socket.h:137:1: 53 AF_RDS = 21 // socket.h:116:1: 54 AF_ROSE = 11 // socket.h:105:1: 55 AF_ROUTE = 16 // socket.h:111:1: 56 AF_RXRPC = 33 // socket.h:128:1: 57 AF_SECURITY = 14 // socket.h:108:1: 58 AF_SMC = 43 // socket.h:138:1: 59 AF_SNA = 22 // socket.h:117:1: 60 AF_TIPC = 30 // socket.h:125:1: 61 AF_UNIX = 1 // socket.h:94:1: 62 AF_UNSPEC = 0 // socket.h:92:1: 63 AF_VSOCK = 40 // socket.h:135:1: 64 AF_WANPIPE = 25 // socket.h:120:1: 65 AF_X25 = 9 // socket.h:103:1: 66 AF_XDP = 44 // socket.h:139:1: 67 BIG_ENDIAN = 4321 // endian.h:28:1: 68 BYTE_ORDER = 1234 // endian.h:30:1: 69 FD_SETSIZE = 1024 // select.h:73:1: 70 FIOGETOWN = 0x8903 // sockios.h:8:1: 71 FIOSETOWN = 0x8901 // sockios.h:6:1: 72 INET6_ADDRSTRLEN = 46 // in.h:234:1: 73 INET_ADDRSTRLEN = 16 // in.h:233:1: 74 IN_CLASSA_HOST = 16777215 // in.h:169:1: 75 IN_CLASSA_MAX = 128 // in.h:170:1: 76 IN_CLASSA_NET = 0xff000000 // in.h:167:1: 77 IN_CLASSA_NSHIFT = 24 // in.h:168:1: 78 IN_CLASSB_HOST = 65535 // in.h:175:1: 79 IN_CLASSB_MAX = 65536 // in.h:176:1: 80 IN_CLASSB_NET = 0xffff0000 // in.h:173:1: 81 IN_CLASSB_NSHIFT = 16 // in.h:174:1: 82 IN_CLASSC_HOST = 255 // in.h:181:1: 83 IN_CLASSC_NET = 0xffffff00 // in.h:179:1: 84 IN_CLASSC_NSHIFT = 8 // in.h:180:1: 85 IN_LOOPBACKNET = 127 // in.h:197:1: 86 IPV6_2292DSTOPTS = 4 // in.h:171:1: 87 IPV6_2292HOPLIMIT = 8 // in.h:175:1: 88 IPV6_2292HOPOPTS = 3 // in.h:170:1: 89 IPV6_2292PKTINFO = 2 // in.h:169:1: 90 IPV6_2292PKTOPTIONS = 6 // in.h:173:1: 91 IPV6_2292RTHDR = 5 // in.h:172:1: 92 IPV6_ADDRFORM = 1 // in.h:168:1: 93 IPV6_ADDR_PREFERENCES = 72 // in.h:223:1: 94 IPV6_ADD_MEMBERSHIP = 20 // in.h:237:1: 95 IPV6_AUTHHDR = 10 // in.h:180:1: 96 IPV6_AUTOFLOWLABEL = 70 // in.h:220:1: 97 IPV6_CHECKSUM = 7 // in.h:174:1: 98 IPV6_DONTFRAG = 62 // in.h:214:1: 99 IPV6_DROP_MEMBERSHIP = 21 // in.h:238:1: 100 IPV6_DSTOPTS = 59 // in.h:211:1: 101 IPV6_FREEBIND = 78 // in.h:233:1: 102 IPV6_HDRINCL = 36 // in.h:198:1: 103 IPV6_HOPLIMIT = 52 // in.h:204:1: 104 IPV6_HOPOPTS = 54 // in.h:206:1: 105 IPV6_IPSEC_POLICY = 34 // in.h:196:1: 106 IPV6_JOIN_ANYCAST = 27 // in.h:192:1: 107 IPV6_JOIN_GROUP = 20 // in.h:185:1: 108 IPV6_LEAVE_ANYCAST = 28 // in.h:193:1: 109 IPV6_LEAVE_GROUP = 21 // in.h:186:1: 110 IPV6_MINHOPCOUNT = 73 // in.h:226:1: 111 IPV6_MTU = 24 // in.h:189:1: 112 IPV6_MTU_DISCOVER = 23 // in.h:188:1: 113 IPV6_MULTICAST_ALL = 29 // in.h:194:1: 114 IPV6_MULTICAST_HOPS = 18 // in.h:183:1: 115 IPV6_MULTICAST_IF = 17 // in.h:182:1: 116 IPV6_MULTICAST_LOOP = 19 // in.h:184:1: 117 IPV6_NEXTHOP = 9 // in.h:179:1: 118 IPV6_ORIGDSTADDR = 74 // in.h:228:1: 119 IPV6_PATHMTU = 61 // in.h:213:1: 120 IPV6_PKTINFO = 50 // in.h:202:1: 121 IPV6_PMTUDISC_DO = 2 // in.h:246:1: 122 IPV6_PMTUDISC_DONT = 0 // in.h:244:1: 123 IPV6_PMTUDISC_INTERFACE = 4 // in.h:248:1: 124 IPV6_PMTUDISC_OMIT = 5 // in.h:249:1: 125 IPV6_PMTUDISC_PROBE = 3 // in.h:247:1: 126 IPV6_PMTUDISC_WANT = 1 // in.h:245:1: 127 IPV6_RECVDSTOPTS = 58 // in.h:210:1: 128 IPV6_RECVERR = 25 // in.h:190:1: 129 IPV6_RECVFRAGSIZE = 77 // in.h:232:1: 130 IPV6_RECVHOPLIMIT = 51 // in.h:203:1: 131 IPV6_RECVHOPOPTS = 53 // in.h:205:1: 132 IPV6_RECVORIGDSTADDR = 74 // in.h:229:1: 133 IPV6_RECVPATHMTU = 60 // in.h:212:1: 134 IPV6_RECVPKTINFO = 49 // in.h:201:1: 135 IPV6_RECVRTHDR = 56 // in.h:208:1: 136 IPV6_RECVTCLASS = 66 // in.h:217:1: 137 IPV6_ROUTER_ALERT = 22 // in.h:187:1: 138 IPV6_ROUTER_ALERT_ISOLATE = 30 // in.h:195:1: 139 IPV6_RTHDR = 57 // in.h:209:1: 140 IPV6_RTHDRDSTOPTS = 55 // in.h:207:1: 141 IPV6_RTHDR_LOOSE = 0 // in.h:256:1: 142 IPV6_RTHDR_STRICT = 1 // in.h:257:1: 143 IPV6_RTHDR_TYPE_0 = 0 // in.h:259:1: 144 IPV6_RXDSTOPTS = 59 // in.h:241:1: 145 IPV6_RXHOPOPTS = 54 // in.h:240:1: 146 IPV6_TCLASS = 67 // in.h:218:1: 147 IPV6_TRANSPARENT = 75 // in.h:230:1: 148 IPV6_UNICAST_HOPS = 16 // in.h:181:1: 149 IPV6_UNICAST_IF = 76 // in.h:231:1: 150 IPV6_V6ONLY = 26 // in.h:191:1: 151 IPV6_XFRM_POLICY = 35 // in.h:197:1: 152 IP_ADD_MEMBERSHIP = 35 // in.h:121:1: 153 IP_ADD_SOURCE_MEMBERSHIP = 39 // in.h:125:1: 154 IP_BIND_ADDRESS_NO_PORT = 24 // in.h:103:1: 155 IP_BLOCK_SOURCE = 38 // in.h:124:1: 156 IP_CHECKSUM = 23 // in.h:102:1: 157 IP_DEFAULT_MULTICAST_LOOP = 1 // in.h:135:1: 158 IP_DEFAULT_MULTICAST_TTL = 1 // in.h:134:1: 159 IP_DROP_MEMBERSHIP = 36 // in.h:122:1: 160 IP_DROP_SOURCE_MEMBERSHIP = 40 // in.h:126:1: 161 IP_FREEBIND = 15 // in.h:89:1: 162 IP_HDRINCL = 3 // in.h:48:1: 163 IP_IPSEC_POLICY = 16 // in.h:90:1: 164 IP_MAX_MEMBERSHIPS = 20 // in.h:136:1: 165 IP_MINTTL = 21 // in.h:100:1: 166 IP_MSFILTER = 41 // in.h:127:1: 167 IP_MTU = 14 // in.h:88:1: 168 IP_MTU_DISCOVER = 10 // in.h:84:1: 169 IP_MULTICAST_ALL = 49 // in.h:128:1: 170 IP_MULTICAST_IF = 32 // in.h:118:1: 171 IP_MULTICAST_LOOP = 34 // in.h:120:1: 172 IP_MULTICAST_TTL = 33 // in.h:119:1: 173 IP_NODEFRAG = 22 // in.h:101:1: 174 IP_OPTIONS = 4 // in.h:47:1: 175 IP_ORIGDSTADDR = 20 // in.h:97:1: 176 IP_PASSSEC = 18 // in.h:92:1: 177 IP_PKTINFO = 8 // in.h:81:1: 178 IP_PKTOPTIONS = 9 // in.h:82:1: 179 IP_PMTUDISC = 10 // in.h:83:1: 180 IP_PMTUDISC_DO = 2 // in.h:109:1: 181 IP_PMTUDISC_DONT = 0 // in.h:107:1: 182 IP_PMTUDISC_INTERFACE = 4 // in.h:114:1: 183 IP_PMTUDISC_OMIT = 5 // in.h:116:1: 184 IP_PMTUDISC_PROBE = 3 // in.h:110:1: 185 IP_PMTUDISC_WANT = 1 // in.h:108:1: 186 IP_RECVERR = 11 // in.h:85:1: 187 IP_RECVFRAGSIZE = 25 // in.h:104:1: 188 IP_RECVOPTS = 6 // in.h:51:1: 189 IP_RECVORIGDSTADDR = 20 // in.h:98:1: 190 IP_RECVRETOPTS = 7 // in.h:53:1: 191 IP_RECVTOS = 13 // in.h:87:1: 192 IP_RECVTTL = 12 // in.h:86:1: 193 IP_RETOPTS = 7 // in.h:54:1: 194 IP_ROUTER_ALERT = 5 // in.h:80:1: 195 IP_TOS = 1 // in.h:49:1: 196 IP_TRANSPARENT = 19 // in.h:93:1: 197 IP_TTL = 2 // in.h:50:1: 198 IP_UNBLOCK_SOURCE = 37 // in.h:123:1: 199 IP_UNICAST_IF = 50 // in.h:129:1: 200 IP_XFRM_POLICY = 17 // in.h:91:1: 201 LITTLE_ENDIAN = 1234 // endian.h:27:1: 202 MCAST_BLOCK_SOURCE = 43 // in.h:67:1: 203 MCAST_EXCLUDE = 0 // in.h:76:1: 204 MCAST_INCLUDE = 1 // in.h:77:1: 205 MCAST_JOIN_GROUP = 42 // in.h:66:1: 206 MCAST_JOIN_SOURCE_GROUP = 46 // in.h:70:1: 207 MCAST_LEAVE_GROUP = 45 // in.h:69:1: 208 MCAST_LEAVE_SOURCE_GROUP = 47 // in.h:71:1: 209 MCAST_MSFILTER = 48 // in.h:72:1: 210 MCAST_UNBLOCK_SOURCE = 44 // in.h:68:1: 211 PDP_ENDIAN = 3412 // endian.h:29:1: 212 PF_ALG = 38 // socket.h:82:1: 213 PF_APPLETALK = 5 // socket.h:48:1: 214 PF_ASH = 18 // socket.h:62:1: 215 PF_ATMPVC = 8 // socket.h:51:1: 216 PF_ATMSVC = 20 // socket.h:64:1: 217 PF_AX25 = 3 // socket.h:46:1: 218 PF_BLUETOOTH = 31 // socket.h:75:1: 219 PF_BRIDGE = 7 // socket.h:50:1: 220 PF_CAIF = 37 // socket.h:81:1: 221 PF_CAN = 29 // socket.h:73:1: 222 PF_DECnet = 12 // socket.h:55:1: 223 PF_ECONET = 19 // socket.h:63:1: 224 PF_FILE = 1 // socket.h:44:1: 225 PF_IB = 27 // socket.h:71:1: 226 PF_IEEE802154 = 36 // socket.h:80:1: 227 PF_INET = 2 // socket.h:45:1: 228 PF_INET6 = 10 // socket.h:53:1: 229 PF_IPX = 4 // socket.h:47:1: 230 PF_IRDA = 23 // socket.h:67:1: 231 PF_ISDN = 34 // socket.h:78:1: 232 PF_IUCV = 32 // socket.h:76:1: 233 PF_KCM = 41 // socket.h:85:1: 234 PF_KEY = 15 // socket.h:58:1: 235 PF_LLC = 26 // socket.h:70:1: 236 PF_LOCAL = 1 // socket.h:42:1: 237 PF_MAX = 45 // socket.h:89:1: 238 PF_MPLS = 28 // socket.h:72:1: 239 PF_NETBEUI = 13 // socket.h:56:1: 240 PF_NETLINK = 16 // socket.h:59:1: 241 PF_NETROM = 6 // socket.h:49:1: 242 PF_NFC = 39 // socket.h:83:1: 243 PF_PACKET = 17 // socket.h:61:1: 244 PF_PHONET = 35 // socket.h:79:1: 245 PF_PPPOX = 24 // socket.h:68:1: 246 PF_QIPCRTR = 42 // socket.h:86:1: 247 PF_RDS = 21 // socket.h:65:1: 248 PF_ROSE = 11 // socket.h:54:1: 249 PF_ROUTE = 16 // socket.h:60:1: 250 PF_RXRPC = 33 // socket.h:77:1: 251 PF_SECURITY = 14 // socket.h:57:1: 252 PF_SMC = 43 // socket.h:87:1: 253 PF_SNA = 22 // socket.h:66:1: 254 PF_TIPC = 30 // socket.h:74:1: 255 PF_UNIX = 1 // socket.h:43:1: 256 PF_UNSPEC = 0 // socket.h:41:1: 257 PF_VSOCK = 40 // socket.h:84:1: 258 PF_WANPIPE = 25 // socket.h:69:1: 259 PF_X25 = 9 // socket.h:52:1: 260 PF_XDP = 44 // socket.h:88:1: 261 SCM_TIMESTAMP = 29 // socket.h:140:1: 262 SCM_TIMESTAMPING = 37 // socket.h:142:1: 263 SCM_TIMESTAMPING_OPT_STATS = 54 // socket.h:90:1: 264 SCM_TIMESTAMPING_PKTINFO = 58 // socket.h:98:1: 265 SCM_TIMESTAMPNS = 35 // socket.h:141:1: 266 SCM_TXTIME = 61 // socket.h:105:1: 267 SCM_WIFI_STATUS = 41 // socket.h:64:1: 268 SIOCATMARK = 0x8905 // sockios.h:10:1: 269 SIOCGPGRP = 0x8904 // sockios.h:9:1: 270 SIOCGSTAMP = 0x8906 // sockios.h:11:1: 271 SIOCGSTAMPNS = 0x8907 // sockios.h:12:1: 272 SIOCSPGRP = 0x8902 // sockios.h:7:1: 273 SOL_AAL = 265 // socket.h:151:1: 274 SOL_ALG = 279 // socket.h:165:1: 275 SOL_ATM = 264 // socket.h:150:1: 276 SOL_BLUETOOTH = 274 // socket.h:160:1: 277 SOL_CAIF = 278 // socket.h:164:1: 278 SOL_DCCP = 269 // socket.h:155:1: 279 SOL_DECNET = 261 // socket.h:147:1: 280 SOL_ICMPV6 = 58 // in.h:253:1: 281 SOL_IP = 0 // in.h:132:1: 282 SOL_IPV6 = 41 // in.h:252:1: 283 SOL_IRDA = 266 // socket.h:152:1: 284 SOL_IUCV = 277 // socket.h:163:1: 285 SOL_KCM = 281 // socket.h:167:1: 286 SOL_LLC = 268 // socket.h:154:1: 287 SOL_NETBEUI = 267 // socket.h:153:1: 288 SOL_NETLINK = 270 // socket.h:156:1: 289 SOL_NFC = 280 // socket.h:166:1: 290 SOL_PACKET = 263 // socket.h:149:1: 291 SOL_PNPIPE = 275 // socket.h:161:1: 292 SOL_PPPOL2TP = 273 // socket.h:159:1: 293 SOL_RAW = 255 // socket.h:146:1: 294 SOL_RDS = 276 // socket.h:162:1: 295 SOL_RXRPC = 272 // socket.h:158:1: 296 SOL_SOCKET = 1 // socket.h:9:1: 297 SOL_TIPC = 271 // socket.h:157:1: 298 SOL_TLS = 282 // socket.h:168:1: 299 SOL_X25 = 262 // socket.h:148:1: 300 SOL_XDP = 283 // socket.h:169:1: 301 SOMAXCONN = 4096 // socket.h:172:1: 302 SO_ACCEPTCONN = 30 // socket.h:51:1: 303 SO_ATTACH_BPF = 50 // socket.h:82:1: 304 SO_ATTACH_FILTER = 26 // socket.h:45:1: 305 SO_ATTACH_REUSEPORT_CBPF = 51 // socket.h:85:1: 306 SO_ATTACH_REUSEPORT_EBPF = 52 // socket.h:86:1: 307 SO_BINDTODEVICE = 25 // socket.h:42:1: 308 SO_BINDTOIFINDEX = 62 // socket.h:107:1: 309 SO_BPF_EXTENSIONS = 48 // socket.h:78:1: 310 SO_BROADCAST = 6 // socket.h:16:1: 311 SO_BSDCOMPAT = 14 // socket.h:26:1: 312 SO_BUSY_POLL = 46 // socket.h:74:1: 313 SO_CNX_ADVICE = 53 // socket.h:88:1: 314 SO_COOKIE = 57 // socket.h:96:1: 315 SO_DEBUG = 1 // socket.h:11:1: 316 SO_DETACH_BPF = 27 // socket.h:83:1: 317 SO_DETACH_FILTER = 27 // socket.h:46:1: 318 SO_DETACH_REUSEPORT_BPF = 68 // socket.h:120:1: 319 SO_DOMAIN = 39 // socket.h:59:1: 320 SO_DONTROUTE = 5 // socket.h:15:1: 321 SO_ERROR = 4 // socket.h:14:1: 322 SO_GET_FILTER = 26 // socket.h:47:1: 323 SO_INCOMING_CPU = 49 // socket.h:80:1: 324 SO_INCOMING_NAPI_ID = 56 // socket.h:94:1: 325 SO_KEEPALIVE = 9 // socket.h:21:1: 326 SO_LINGER = 13 // socket.h:25:1: 327 SO_LOCK_FILTER = 44 // socket.h:70:1: 328 SO_MARK = 36 // socket.h:56:1: 329 SO_MAX_PACING_RATE = 47 // socket.h:76:1: 330 SO_MEMINFO = 55 // socket.h:92:1: 331 SO_NOFCS = 43 // socket.h:68:1: 332 SO_NO_CHECK = 11 // socket.h:23:1: 333 SO_OOBINLINE = 10 // socket.h:22:1: 334 SO_PASSCRED = 16 // socket.h:29:1: 335 SO_PASSSEC = 34 // socket.h:54:1: 336 SO_PEEK_OFF = 42 // socket.h:65:1: 337 SO_PEERCRED = 17 // socket.h:30:1: 338 SO_PEERGROUPS = 59 // socket.h:100:1: 339 SO_PEERNAME = 28 // socket.h:49:1: 340 SO_PEERSEC = 31 // socket.h:53:1: 341 SO_PRIORITY = 12 // socket.h:24:1: 342 SO_PROTOCOL = 38 // socket.h:58:1: 343 SO_RCVBUF = 8 // socket.h:18:1: 344 SO_RCVBUFFORCE = 33 // socket.h:20:1: 345 SO_RCVLOWAT = 18 // socket.h:31:1: 346 SO_RCVTIMEO = 20 // socket.h:129:1: 347 SO_RCVTIMEO_NEW = 66 // socket.h:117:1: 348 SO_RCVTIMEO_OLD = 20 // socket.h:33:1: 349 SO_REUSEADDR = 2 // socket.h:12:1: 350 SO_REUSEPORT = 15 // socket.h:27:1: 351 SO_RXQ_OVFL = 40 // socket.h:61:1: 352 SO_SECURITY_AUTHENTICATION = 22 // socket.h:38:1: 353 SO_SECURITY_ENCRYPTION_NETWORK = 24 // socket.h:40:1: 354 SO_SECURITY_ENCRYPTION_TRANSPORT = 23 // socket.h:39:1: 355 SO_SELECT_ERR_QUEUE = 45 // socket.h:72:1: 356 SO_SNDBUF = 7 // socket.h:17:1: 357 SO_SNDBUFFORCE = 32 // socket.h:19:1: 358 SO_SNDLOWAT = 19 // socket.h:32:1: 359 SO_SNDTIMEO = 21 // socket.h:130:1: 360 SO_SNDTIMEO_NEW = 67 // socket.h:118:1: 361 SO_SNDTIMEO_OLD = 21 // socket.h:34:1: 362 SO_TIMESTAMP = 29 // socket.h:125:1: 363 SO_TIMESTAMPING = 37 // socket.h:127:1: 364 SO_TIMESTAMPING_NEW = 65 // socket.h:115:1: 365 SO_TIMESTAMPING_OLD = 37 // socket.h:111:1: 366 SO_TIMESTAMPNS = 35 // socket.h:126:1: 367 SO_TIMESTAMPNS_NEW = 64 // socket.h:114:1: 368 SO_TIMESTAMPNS_OLD = 35 // socket.h:110:1: 369 SO_TIMESTAMP_NEW = 63 // socket.h:113:1: 370 SO_TIMESTAMP_OLD = 29 // socket.h:109:1: 371 SO_TXTIME = 61 // socket.h:104:1: 372 SO_TYPE = 3 // socket.h:13:1: 373 SO_WIFI_STATUS = 41 // socket.h:63:1: 374 SO_ZEROCOPY = 60 // socket.h:102:1: 375 X_ASM_X86_POSIX_TYPES_64_H = 0 // posix_types_64.h:3:1: 376 X_ATFILE_SOURCE = 1 // features.h:342:1: 377 X_BITS_BYTESWAP_H = 1 // byteswap.h:24:1: 378 X_BITS_ENDIANNESS_H = 1 // endianness.h:2:1: 379 X_BITS_ENDIAN_H = 1 // endian.h:20:1: 380 X_BITS_PTHREADTYPES_ARCH_H = 1 // pthreadtypes-arch.h:19:1: 381 X_BITS_PTHREADTYPES_COMMON_H = 1 // pthreadtypes.h:20:1: 382 X_BITS_SOCKADDR_H = 1 // sockaddr.h:24:1: 383 X_BITS_STDINT_INTN_H = 1 // stdint-intn.h:20:1: 384 X_BITS_STDINT_UINTN_H = 1 // stdint-uintn.h:20:1: 385 X_BITS_TIME64_H = 1 // time64.h:24:1: 386 X_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: 387 X_BITS_TYPES_H = 1 // types.h:24:1: 388 X_BITS_UINTN_IDENTITY_H = 1 // uintn-identity.h:24:1: 389 X_BSD_SIZE_T_ = 0 // stddef.h:189:1: 390 X_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:192:1: 391 X_DEFAULT_SOURCE = 1 // features.h:227:1: 392 X_ENDIAN_H = 1 // endian.h:19:1: 393 X_FEATURES_H = 1 // features.h:19:1: 394 X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: 395 X_GCC_SIZE_T = 0 // stddef.h:195:1: 396 X_LINUX_POSIX_TYPES_H = 0 // posix_types.h:3:1: 397 X_LP64 = 1 // <predefined>:284:1: 398 X_NETINET_IN_H = 1 // in.h:19:1: 399 X_POSIX_C_SOURCE = 200809 // features.h:281:1: 400 X_POSIX_SOURCE = 1 // features.h:279:1: 401 X_RWLOCK_INTERNAL_H = 0 // struct_rwlock.h:21:1: 402 X_SIZET_ = 0 // stddef.h:196:1: 403 X_SIZE_T = 0 // stddef.h:183:1: 404 X_SIZE_T_ = 0 // stddef.h:188:1: 405 X_SIZE_T_DECLARED = 0 // stddef.h:193:1: 406 X_SIZE_T_DEFINED = 0 // stddef.h:191:1: 407 X_SIZE_T_DEFINED_ = 0 // stddef.h:190:1: 408 X_SS_SIZE = 128 // sockaddr.h:40:1: 409 X_STDC_PREDEF_H = 1 // <predefined>:162:1: 410 X_STRUCT_TIMESPEC = 1 // struct_timespec.h:3:1: 411 X_SYS_CDEFS_H = 1 // cdefs.h:19:1: 412 X_SYS_SELECT_H = 1 // select.h:22:1: 413 X_SYS_SIZE_T_H = 0 // stddef.h:184:1: 414 X_SYS_SOCKET_H = 1 // socket.h:20:1: 415 X_SYS_TYPES_H = 1 // types.h:23:1: 416 X_THREAD_MUTEX_INTERNAL_H = 1 // struct_mutex.h:20:1: 417 X_THREAD_SHARED_TYPES_H = 1 // thread-shared-types.h:20:1: 418 X_T_SIZE = 0 // stddef.h:186:1: 419 X_T_SIZE_ = 0 // stddef.h:185:1: 420 Linux = 1 // <predefined>:231:1: 421 Unix = 1 // <predefined>:177:1: 422 ) 423 424 // Standard well-known ports. 425 const ( /* in.h:122:1: */ 426 IPPORT_ECHO = 7 // Echo service. 427 IPPORT_DISCARD = 9 // Discard transmissions service. 428 IPPORT_SYSTAT = 11 // System status service. 429 IPPORT_DAYTIME = 13 // Time of day service. 430 IPPORT_NETSTAT = 15 // Network status service. 431 IPPORT_FTP = 21 // File Transfer Protocol. 432 IPPORT_TELNET = 23 // Telnet protocol. 433 IPPORT_SMTP = 25 // Simple Mail Transfer Protocol. 434 IPPORT_TIMESERVER = 37 // Timeserver service. 435 IPPORT_NAMESERVER = 42 // Domain Name Service. 436 IPPORT_WHOIS = 43 // Internet Whois service. 437 IPPORT_MTP = 57 438 439 IPPORT_TFTP = 69 // Trivial File Transfer Protocol. 440 IPPORT_RJE = 77 441 IPPORT_FINGER = 79 // Finger service. 442 IPPORT_TTYLINK = 87 443 IPPORT_SUPDUP = 95 // SUPDUP protocol. 444 445 IPPORT_EXECSERVER = 512 // execd service. 446 IPPORT_LOGINSERVER = 513 // rlogind service. 447 IPPORT_CMDSERVER = 514 448 IPPORT_EFSSERVER = 520 449 450 // UDP ports. 451 IPPORT_BIFFUDP = 512 452 IPPORT_WHOSERVER = 513 453 IPPORT_ROUTESERVER = 520 454 455 // Ports less than this value are reserved for privileged processes. 456 IPPORT_RESERVED = 1024 457 458 // Ports greater this value are reserved for (non-privileged) servers. 459 IPPORT_USERRESERVED = 5000 460 ) 461 462 // Options for use with `getsockopt' and `setsockopt' at the IPv6 level. 463 // The first word in the comment at the right is the data type used; 464 // "bool" means a boolean value stored in an `int'. 465 466 // Advanced API (RFC3542) (1). 467 468 // Advanced API (RFC3542) (2). 469 470 // RFC5014. 471 472 // RFC5082. 473 474 // Obsolete synonyms for the above. 475 476 // IPV6_MTU_DISCOVER values. 477 478 // Socket level values for IPv6. 479 480 // Routing header options for IPv6. 481 482 // Standard well-defined IP protocols. 483 const ( /* in.h:40:1: */ 484 IPPROTO_IP = 0 // Dummy protocol for TCP. 485 IPPROTO_ICMP = 1 // Internet Control Message Protocol. 486 IPPROTO_IGMP = 2 // Internet Group Management Protocol. 487 IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94). 488 IPPROTO_TCP = 6 // Transmission Control Protocol. 489 IPPROTO_EGP = 8 // Exterior Gateway Protocol. 490 IPPROTO_PUP = 12 // PUP protocol. 491 IPPROTO_UDP = 17 // User Datagram Protocol. 492 IPPROTO_IDP = 22 // XNS IDP protocol. 493 IPPROTO_TP = 29 // SO Transport Protocol Class 4. 494 IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol. 495 IPPROTO_IPV6 = 41 // IPv6 header. 496 IPPROTO_RSVP = 46 // Reservation Protocol. 497 IPPROTO_GRE = 47 // General Routing Encapsulation. 498 IPPROTO_ESP = 50 // encapsulating security payload. 499 IPPROTO_AH = 51 // authentication header. 500 IPPROTO_MTP = 92 // Multicast Transport Protocol. 501 IPPROTO_BEETPH = 94 // IP option pseudo header for BEET. 502 IPPROTO_ENCAP = 98 // Encapsulation Header. 503 IPPROTO_PIM = 103 // Protocol Independent Multicast. 504 IPPROTO_COMP = 108 // Compression Header Protocol. 505 IPPROTO_SCTP = 132 // Stream Control Transmission Protocol. 506 IPPROTO_UDPLITE = 136 // UDP-Lite protocol. 507 IPPROTO_MPLS = 137 // MPLS in IP. 508 IPPROTO_RAW = 255 // Raw IP packets. 509 IPPROTO_MAX = 256 510 ) 511 512 // If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel 513 // 514 // network headers first and we should use those ABI-identical definitions 515 // instead of our own, otherwise 0. 516 const ( /* in.h:99:1: */ 517 IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options. 518 IPPROTO_ROUTING = 43 // IPv6 routing header. 519 IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header. 520 IPPROTO_ICMPV6 = 58 // ICMPv6. 521 IPPROTO_NONE = 59 // IPv6 no next header. 522 IPPROTO_DSTOPTS = 60 // IPv6 destination options. 523 IPPROTO_MH = 135 524 ) 525 526 // Bits in the FLAGS argument to `send', `recv', et al. 527 const ( /* socket.h:200:1: */ 528 MSG_OOB = 1 // Process out-of-band data. 529 MSG_PEEK = 2 // Peek at incoming messages. 530 MSG_DONTROUTE = 4 // Don't use local routing. 531 MSG_CTRUNC = 8 // Control data lost before delivery. 532 MSG_PROXY = 16 // Supply or ask second address. 533 MSG_TRUNC = 32 534 MSG_DONTWAIT = 64 // Nonblocking IO. 535 MSG_EOR = 128 // End of record. 536 MSG_WAITALL = 256 // Wait for a full request. 537 MSG_FIN = 512 538 MSG_SYN = 1024 539 MSG_CONFIRM = 2048 // Confirm path validity. 540 MSG_RST = 4096 541 MSG_ERRQUEUE = 8192 // Fetch message from error queue. 542 MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE. 543 MSG_MORE = 32768 // Sender will send more. 544 MSG_WAITFORONE = 65536 // Wait for at least one packet to return. 545 MSG_BATCH = 262144 // sendmmsg: more messages coming. 546 MSG_ZEROCOPY = 67108864 // Use user data in kernel path. 547 MSG_FASTOPEN = 536870912 // Send data in TCP SYN. 548 549 MSG_CMSG_CLOEXEC = 1073741824 550 ) 551 552 // Socket level message types. This must match the definitions in 553 // 554 // <linux/socket.h>. 555 const ( /* socket.h:332:1: */ 556 SCM_RIGHTS = 1 557 ) 558 559 // Get the architecture-dependent definition of enum __socket_type. 560 // Define enum __socket_type for generic Linux. 561 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 562 // This file is part of the GNU C Library. 563 // 564 // The GNU C Library is free software; you can redistribute it and/or 565 // modify it under the terms of the GNU Lesser General Public 566 // License as published by the Free Software Foundation; either 567 // version 2.1 of the License, or (at your option) any later version. 568 // 569 // The GNU C Library is distributed in the hope that it will be useful, 570 // but WITHOUT ANY WARRANTY; without even the implied warranty of 571 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 572 // Lesser General Public License for more details. 573 // 574 // You should have received a copy of the GNU Lesser General Public 575 // License along with the GNU C Library; if not, see 576 // <https://www.gnu.org/licenses/>. 577 578 // Types of sockets. 579 const ( /* socket_type.h:24:1: */ 580 SOCK_STREAM = 1 // Sequenced, reliable, connection-based 581 // byte streams. 582 SOCK_DGRAM = 2 // Connectionless, unreliable datagrams 583 // of fixed maximum length. 584 SOCK_RAW = 3 // Raw protocol interface. 585 SOCK_RDM = 4 // Reliably-delivered messages. 586 SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based, 587 // datagrams of fixed maximum length. 588 SOCK_DCCP = 6 // Datagram Congestion Control Protocol. 589 SOCK_PACKET = 10 // Linux specific way of getting packets 590 // at the dev level. For writing rarp and 591 // other similar things on the user level. 592 593 // Flags to be ORed into the type parameter of socket and socketpair and 594 // used for the flags parameter of paccept. 595 596 SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the 597 // new descriptor(s). 598 SOCK_NONBLOCK = 2048 599 ) 600 601 // The following constants should be used for the second parameter of 602 // 603 // `shutdown'. 604 const ( /* socket.h:41:1: */ 605 SHUT_RD = 0 // No more receptions. 606 SHUT_WR = 1 // No more transmissions. 607 SHUT_RDWR = 2 608 ) 609 610 type Ptrdiff_t = int64 /* <builtin>:3:26 */ 611 612 type Size_t = uint64 /* <builtin>:9:23 */ 613 614 type Wchar_t = int32 /* <builtin>:15:24 */ 615 616 type X__int128_t = struct { 617 Flo int64 618 Fhi int64 619 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 620 type X__uint128_t = struct { 621 Flo uint64 622 Fhi uint64 623 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128 624 625 type X__builtin_va_list = uintptr /* <builtin>:46:14 */ 626 type X__float128 = float64 /* <builtin>:47:21 */ 627 628 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 629 // This file is part of the GNU C Library. 630 // 631 // The GNU C Library is free software; you can redistribute it and/or 632 // modify it under the terms of the GNU Lesser General Public 633 // License as published by the Free Software Foundation; either 634 // version 2.1 of the License, or (at your option) any later version. 635 // 636 // The GNU C Library is distributed in the hope that it will be useful, 637 // but WITHOUT ANY WARRANTY; without even the implied warranty of 638 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 639 // Lesser General Public License for more details. 640 // 641 // You should have received a copy of the GNU Lesser General Public 642 // License along with the GNU C Library; if not, see 643 // <https://www.gnu.org/licenses/>. 644 645 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 646 // This file is part of the GNU C Library. 647 // 648 // The GNU C Library is free software; you can redistribute it and/or 649 // modify it under the terms of the GNU Lesser General Public 650 // License as published by the Free Software Foundation; either 651 // version 2.1 of the License, or (at your option) any later version. 652 // 653 // The GNU C Library is distributed in the hope that it will be useful, 654 // but WITHOUT ANY WARRANTY; without even the implied warranty of 655 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 656 // Lesser General Public License for more details. 657 // 658 // You should have received a copy of the GNU Lesser General Public 659 // License along with the GNU C Library; if not, see 660 // <https://www.gnu.org/licenses/>. 661 662 // These are defined by the user (or the compiler) 663 // to specify the desired environment: 664 // 665 // __STRICT_ANSI__ ISO Standard C. 666 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 667 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 668 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 669 // __STDC_WANT_LIB_EXT2__ 670 // Extensions to ISO C99 from TR 27431-2:2010. 671 // __STDC_WANT_IEC_60559_BFP_EXT__ 672 // Extensions to ISO C11 from TS 18661-1:2014. 673 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 674 // Extensions to ISO C11 from TS 18661-4:2015. 675 // __STDC_WANT_IEC_60559_TYPES_EXT__ 676 // Extensions to ISO C11 from TS 18661-3:2015. 677 // 678 // _POSIX_SOURCE IEEE Std 1003.1. 679 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 680 // if >=199309L, add IEEE Std 1003.1b-1993; 681 // if >=199506L, add IEEE Std 1003.1c-1995; 682 // if >=200112L, all of IEEE 1003.1-2004 683 // if >=200809L, all of IEEE 1003.1-2008 684 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 685 // Single Unix conformance is wanted, to 600 for the 686 // sixth revision, to 700 for the seventh revision. 687 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 688 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 689 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 690 // _FILE_OFFSET_BITS=N Select default filesystem interface. 691 // _ATFILE_SOURCE Additional *at interfaces. 692 // _GNU_SOURCE All of the above, plus GNU extensions. 693 // _DEFAULT_SOURCE The default set of features (taking precedence over 694 // __STRICT_ANSI__). 695 // 696 // _FORTIFY_SOURCE Add security hardening to many library functions. 697 // Set to 1 or 2; 2 performs stricter checks than 1. 698 // 699 // _REENTRANT, _THREAD_SAFE 700 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 701 // 702 // The `-ansi' switch to the GNU C compiler, and standards conformance 703 // options such as `-std=c99', define __STRICT_ANSI__. If none of 704 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 705 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 706 // 200809L, as well as enabling miscellaneous functions from BSD and 707 // SVID. If more than one of these are defined, they accumulate. For 708 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 709 // give you ISO C, 1003.1, and 1003.2, but nothing else. 710 // 711 // These are defined by this file and are used by the 712 // header files to decide what to declare or define: 713 // 714 // __GLIBC_USE (F) Define things from feature set F. This is defined 715 // to 1 or 0; the subsequent macros are either defined 716 // or undefined, and those tests should be moved to 717 // __GLIBC_USE. 718 // __USE_ISOC11 Define ISO C11 things. 719 // __USE_ISOC99 Define ISO C99 things. 720 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 721 // __USE_ISOCXX11 Define ISO C++11 things. 722 // __USE_POSIX Define IEEE Std 1003.1 things. 723 // __USE_POSIX2 Define IEEE Std 1003.2 things. 724 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 725 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 726 // __USE_XOPEN Define XPG things. 727 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 728 // __USE_UNIX98 Define Single Unix V2 things. 729 // __USE_XOPEN2K Define XPG6 things. 730 // __USE_XOPEN2KXSI Define XPG6 XSI things. 731 // __USE_XOPEN2K8 Define XPG7 things. 732 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 733 // __USE_LARGEFILE Define correct standard I/O things. 734 // __USE_LARGEFILE64 Define LFS things with separate names. 735 // __USE_FILE_OFFSET64 Define 64bit interface as default. 736 // __USE_MISC Define things from 4.3BSD or System V Unix. 737 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 738 // __USE_GNU Define GNU extensions. 739 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 740 // 741 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 742 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 743 // only for compatibility. All new code should use the other symbols 744 // to test for features. 745 // 746 // All macros listed above as possibly being defined by this file are 747 // explicitly undefined if they are not explicitly defined. 748 // Feature-test macros that are not defined by the user or compiler 749 // but are implied by the other feature-test macros defined (or by the 750 // lack of any definitions) are defined by the file. 751 // 752 // ISO C feature test macros depend on the definition of the macro 753 // when an affected header is included, not when the first system 754 // header is included, and so they are handled in 755 // <bits/libc-header-start.h>, which does not have a multiple include 756 // guard. Feature test macros that can be handled from the first 757 // system header included are handled here. 758 759 // Undefine everything, so we get a clean slate. 760 761 // Suppress kernel-name space pollution unless user expressedly asks 762 // for it. 763 764 // Convenience macro to test the version of gcc. 765 // Use like this: 766 // #if __GNUC_PREREQ (2,8) 767 // ... code requiring gcc 2.8 or later ... 768 // #endif 769 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 770 // added in 2.0. 771 772 // Similarly for clang. Features added to GCC after version 4.2 may 773 // or may not also be available in clang, and clang's definitions of 774 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 775 // features can be queried via __has_extension/__has_feature. 776 777 // Whether to use feature set F. 778 779 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 780 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 781 // issue a warning; the expectation is that the source is being 782 // transitioned to use the new macro. 783 784 // If _GNU_SOURCE was defined by the user, turn on all the other features. 785 786 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 787 // define _DEFAULT_SOURCE. 788 789 // This is to enable the ISO C2X extension. 790 791 // This is to enable the ISO C11 extension. 792 793 // This is to enable the ISO C99 extension. 794 795 // This is to enable the ISO C90 Amendment 1:1995 extension. 796 797 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 798 // is defined, use POSIX.1-2008 (or another version depending on 799 // _XOPEN_SOURCE). 800 801 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 802 // defined in all multithreaded code. GNU libc has not required this 803 // for many years. We now treat them as compatibility synonyms for 804 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 805 // comprehensive support for multithreaded code. Using them never 806 // lowers the selected level of POSIX conformance, only raises it. 807 808 // The function 'gets' existed in C89, but is impossible to use 809 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 810 // compatibility with various implementations of <cstdio>, this test 811 // must consider only the value of __cplusplus when compiling C++. 812 813 // GNU formerly extended the scanf functions with modified format 814 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 815 // input using malloc. This extension conflicts with ISO C99, which 816 // defines %a as a standalone format specifier that reads a floating- 817 // point number; moreover, POSIX.1-2008 provides the same feature 818 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 819 // 820 // We now follow C99 unless GNU extensions are active and the compiler 821 // is specifically in C89 or C++98 mode (strict or not). For 822 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 823 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 824 // old extension. 825 826 // Get definitions of __STDC_* predefined macros, if the compiler has 827 // not preincluded this header automatically. 828 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 829 // This file is part of the GNU C Library. 830 // 831 // The GNU C Library is free software; you can redistribute it and/or 832 // modify it under the terms of the GNU Lesser General Public 833 // License as published by the Free Software Foundation; either 834 // version 2.1 of the License, or (at your option) any later version. 835 // 836 // The GNU C Library is distributed in the hope that it will be useful, 837 // but WITHOUT ANY WARRANTY; without even the implied warranty of 838 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 839 // Lesser General Public License for more details. 840 // 841 // You should have received a copy of the GNU Lesser General Public 842 // License along with the GNU C Library; if not, see 843 // <https://www.gnu.org/licenses/>. 844 845 // This macro indicates that the installed library is the GNU C Library. 846 // For historic reasons the value now is 6 and this will stay from now 847 // on. The use of this variable is deprecated. Use __GLIBC__ and 848 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 849 // GNU C library version and use the values in <gnu/lib-names.h> to get 850 // the sonames of the shared libraries. 851 852 // Major and minor version number of the GNU C library package. Use 853 // these macros to test for features in specific releases. 854 855 // This is here only because every header file already includes this one. 856 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 857 // This file is part of the GNU C Library. 858 // 859 // The GNU C Library is free software; you can redistribute it and/or 860 // modify it under the terms of the GNU Lesser General Public 861 // License as published by the Free Software Foundation; either 862 // version 2.1 of the License, or (at your option) any later version. 863 // 864 // The GNU C Library is distributed in the hope that it will be useful, 865 // but WITHOUT ANY WARRANTY; without even the implied warranty of 866 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 867 // Lesser General Public License for more details. 868 // 869 // You should have received a copy of the GNU Lesser General Public 870 // License along with the GNU C Library; if not, see 871 // <https://www.gnu.org/licenses/>. 872 873 // We are almost always included from features.h. 874 875 // The GNU libc does not support any K&R compilers or the traditional mode 876 // of ISO C compilers anymore. Check for some of the combinations not 877 // anymore supported. 878 879 // Some user header file might have defined this before. 880 881 // All functions, except those with callbacks or those that 882 // synchronize memory, are leaf functions. 883 884 // GCC can always grok prototypes. For C++ programs we add throw() 885 // to help it optimize the function calls. But this works only with 886 // gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions 887 // as non-throwing using a function attribute since programs can use 888 // the -fexceptions options for C code as well. 889 890 // Compilers that are not clang may object to 891 // #if defined __clang__ && __has_extension(...) 892 // even though they do not need to evaluate the right-hand side of the &&. 893 894 // These two macros are not used in glibc anymore. They are kept here 895 // only because some other projects expect the macros to be defined. 896 897 // For these things, GCC behaves the ANSI way normally, 898 // and the non-ANSI way under -traditional. 899 900 // This is not a typedef so `const __ptr_t' does the right thing. 901 902 // C++ needs to know that types and declarations are C, not C++. 903 904 // Fortify support. 905 906 // Support for flexible arrays. 907 // Headers that should use flexible arrays only if they're "real" 908 // (e.g. only if they won't affect sizeof()) should test 909 // #if __glibc_c99_flexarr_available. 910 911 // __asm__ ("xyz") is used throughout the headers to rename functions 912 // at the assembly language level. This is wrapped by the __REDIRECT 913 // macro, in order to support compilers that can do this some other 914 // way. When compilers don't support asm-names at all, we have to do 915 // preprocessor tricks instead (which don't have exactly the right 916 // semantics, but it's the best we can do). 917 // 918 // Example: 919 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 920 921 // 922 // #elif __SOME_OTHER_COMPILER__ 923 // 924 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 925 926 // GCC has various useful declarations that can be made with the 927 // `__attribute__' syntax. All of the ways we use this do fine if 928 // they are omitted for compilers that don't understand it. 929 930 // At some point during the gcc 2.96 development the `malloc' attribute 931 // for functions was introduced. We don't want to use it unconditionally 932 // (although this would be possible) since it generates warnings. 933 934 // Tell the compiler which arguments to an allocation function 935 // indicate the size of the allocation. 936 937 // At some point during the gcc 2.96 development the `pure' attribute 938 // for functions was introduced. We don't want to use it unconditionally 939 // (although this would be possible) since it generates warnings. 940 941 // This declaration tells the compiler that the value is constant. 942 943 // At some point during the gcc 3.1 development the `used' attribute 944 // for functions was introduced. We don't want to use it unconditionally 945 // (although this would be possible) since it generates warnings. 946 947 // Since version 3.2, gcc allows marking deprecated functions. 948 949 // Since version 4.5, gcc also allows one to specify the message printed 950 // when a deprecated function is used. clang claims to be gcc 4.2, but 951 // may also support this feature. 952 953 // At some point during the gcc 2.8 development the `format_arg' attribute 954 // for functions was introduced. We don't want to use it unconditionally 955 // (although this would be possible) since it generates warnings. 956 // If several `format_arg' attributes are given for the same function, in 957 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 958 // all designated arguments are considered. 959 960 // At some point during the gcc 2.97 development the `strfmon' format 961 // attribute for functions was introduced. We don't want to use it 962 // unconditionally (although this would be possible) since it 963 // generates warnings. 964 965 // The nonull function attribute allows to mark pointer parameters which 966 // must not be NULL. 967 968 // If fortification mode, we warn about unused results of certain 969 // function calls which can lead to problems. 970 971 // Forces a function to be always inlined. 972 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 973 // it conflicts with this definition. Therefore undefine it first to 974 // allow either header to be included first. 975 976 // Associate error messages with the source location of the call site rather 977 // than with the source location inside the function. 978 979 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 980 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 981 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 982 // older than 4.3 may define these macros and still not guarantee GNU inlining 983 // semantics. 984 // 985 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 986 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 987 // __GNUC_GNU_INLINE__ macro definitions. 988 989 // GCC 4.3 and above allow passing all anonymous arguments of an 990 // __extern_always_inline function to some other vararg function. 991 992 // It is possible to compile containing GCC extensions even if GCC is 993 // run in pedantic mode if the uses are carefully marked using the 994 // `__extension__' keyword. But this is not generally available before 995 // version 2.8. 996 997 // __restrict is known in EGCS 1.2 and above. 998 999 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 1000 // array_name[restrict] 1001 // GCC 3.1 supports this. 1002 1003 // Describes a char array whose address can safely be passed as the first 1004 // argument to strncpy and strncat, as the char array is not necessarily 1005 // a NUL-terminated string. 1006 1007 // Undefine (also defined in libc-symbols.h). 1008 // Copies attributes from the declaration or type referenced by 1009 // the argument. 1010 1011 // Determine the wordsize from the preprocessor defines. 1012 1013 // Both x86-64 and x32 use the 64-bit system call interface. 1014 // Properties of long double type. ldbl-96 version. 1015 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 1016 // This file is part of the GNU C Library. 1017 // 1018 // The GNU C Library is free software; you can redistribute it and/or 1019 // modify it under the terms of the GNU Lesser General Public 1020 // License published by the Free Software Foundation; either 1021 // version 2.1 of the License, or (at your option) any later version. 1022 // 1023 // The GNU C Library is distributed in the hope that it will be useful, 1024 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1025 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1026 // Lesser General Public License for more details. 1027 // 1028 // You should have received a copy of the GNU Lesser General Public 1029 // License along with the GNU C Library; if not, see 1030 // <https://www.gnu.org/licenses/>. 1031 1032 // long double is distinct from double, so there is nothing to 1033 // define here. 1034 1035 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 1036 // intended for use in preprocessor macros. 1037 // 1038 // Note: MESSAGE must be a _single_ string; concatenation of string 1039 // literals is not supported. 1040 1041 // Generic selection (ISO C11) is a C-only feature, available in GCC 1042 // since version 4.9. Previous versions do not provide generic 1043 // selection, even though they might set __STDC_VERSION__ to 201112L, 1044 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 1045 // when testing __STDC_VERSION__ for generic selection support. 1046 // On the other hand, Clang also defines __GNUC__, so a clang-specific 1047 // check is required to enable the use of generic selection. 1048 1049 // If we don't have __REDIRECT, prototypes will be missing if 1050 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 1051 1052 // Decide whether we can define 'extern inline' functions in headers. 1053 1054 // This is here only because every header file already includes this one. 1055 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 1056 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 1057 // that will always return failure (and set errno to ENOSYS). 1058 // This file is automatically generated. 1059 // This file selects the right generated file of `__stub_FUNCTION' macros 1060 // based on the architecture being compiled for. 1061 1062 // This file is automatically generated. 1063 // It defines a symbol `__stub_FUNCTION' for each function 1064 // in the C library which is a stub, meaning it will fail 1065 // every time called, usually setting errno to ENOSYS. 1066 1067 // Define uintN_t types. 1068 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1069 // This file is part of the GNU C Library. 1070 // 1071 // The GNU C Library is free software; you can redistribute it and/or 1072 // modify it under the terms of the GNU Lesser General Public 1073 // License as published by the Free Software Foundation; either 1074 // version 2.1 of the License, or (at your option) any later version. 1075 // 1076 // The GNU C Library is distributed in the hope that it will be useful, 1077 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1078 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1079 // Lesser General Public License for more details. 1080 // 1081 // You should have received a copy of the GNU Lesser General Public 1082 // License along with the GNU C Library; if not, see 1083 // <https://www.gnu.org/licenses/>. 1084 1085 // bits/types.h -- definitions of __*_t types underlying *_t types. 1086 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1087 // This file is part of the GNU C Library. 1088 // 1089 // The GNU C Library is free software; you can redistribute it and/or 1090 // modify it under the terms of the GNU Lesser General Public 1091 // License as published by the Free Software Foundation; either 1092 // version 2.1 of the License, or (at your option) any later version. 1093 // 1094 // The GNU C Library is distributed in the hope that it will be useful, 1095 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1096 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1097 // Lesser General Public License for more details. 1098 // 1099 // You should have received a copy of the GNU Lesser General Public 1100 // License along with the GNU C Library; if not, see 1101 // <https://www.gnu.org/licenses/>. 1102 1103 // Never include this file directly; use <sys/types.h> instead. 1104 1105 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1106 // This file is part of the GNU C Library. 1107 // 1108 // The GNU C Library is free software; you can redistribute it and/or 1109 // modify it under the terms of the GNU Lesser General Public 1110 // License as published by the Free Software Foundation; either 1111 // version 2.1 of the License, or (at your option) any later version. 1112 // 1113 // The GNU C Library is distributed in the hope that it will be useful, 1114 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1115 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1116 // Lesser General Public License for more details. 1117 // 1118 // You should have received a copy of the GNU Lesser General Public 1119 // License along with the GNU C Library; if not, see 1120 // <https://www.gnu.org/licenses/>. 1121 1122 // Determine the wordsize from the preprocessor defines. 1123 1124 // Both x86-64 and x32 use the 64-bit system call interface. 1125 // Bit size of the time_t type at glibc build time, x86-64 and x32 case. 1126 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 1127 // This file is part of the GNU C Library. 1128 // 1129 // The GNU C Library is free software; you can redistribute it and/or 1130 // modify it under the terms of the GNU Lesser General Public 1131 // License as published by the Free Software Foundation; either 1132 // version 2.1 of the License, or (at your option) any later version. 1133 // 1134 // The GNU C Library is distributed in the hope that it will be useful, 1135 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1136 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1137 // Lesser General Public License for more details. 1138 // 1139 // You should have received a copy of the GNU Lesser General Public 1140 // License along with the GNU C Library; if not, see 1141 // <https://www.gnu.org/licenses/>. 1142 1143 // For others, time size is word size. 1144 1145 // Convenience types. 1146 type X__u_char = uint8 /* types.h:31:23 */ 1147 type X__u_short = uint16 /* types.h:32:28 */ 1148 type X__u_int = uint32 /* types.h:33:22 */ 1149 type X__u_long = uint64 /* types.h:34:27 */ 1150 1151 // Fixed-size types, underlying types depend on word size and compiler. 1152 type X__int8_t = int8 /* types.h:37:21 */ 1153 type X__uint8_t = uint8 /* types.h:38:23 */ 1154 type X__int16_t = int16 /* types.h:39:26 */ 1155 type X__uint16_t = uint16 /* types.h:40:28 */ 1156 type X__int32_t = int32 /* types.h:41:20 */ 1157 type X__uint32_t = uint32 /* types.h:42:22 */ 1158 type X__int64_t = int64 /* types.h:44:25 */ 1159 type X__uint64_t = uint64 /* types.h:45:27 */ 1160 1161 // Smallest types with at least a given width. 1162 type X__int_least8_t = X__int8_t /* types.h:52:18 */ 1163 type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ 1164 type X__int_least16_t = X__int16_t /* types.h:54:19 */ 1165 type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ 1166 type X__int_least32_t = X__int32_t /* types.h:56:19 */ 1167 type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ 1168 type X__int_least64_t = X__int64_t /* types.h:58:19 */ 1169 type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ 1170 1171 // quad_t is also 64 bits. 1172 type X__quad_t = int64 /* types.h:63:18 */ 1173 type X__u_quad_t = uint64 /* types.h:64:27 */ 1174 1175 // Largest integral types. 1176 type X__intmax_t = int64 /* types.h:72:18 */ 1177 type X__uintmax_t = uint64 /* types.h:73:27 */ 1178 1179 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 1180 // macros for each of the OS types we define below. The definitions 1181 // of those macros must use the following macros for underlying types. 1182 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 1183 // variants of each of the following integer types on this machine. 1184 // 1185 // 16 -- "natural" 16-bit type (always short) 1186 // 32 -- "natural" 32-bit type (always int) 1187 // 64 -- "natural" 64-bit type (long or long long) 1188 // LONG32 -- 32-bit type, traditionally long 1189 // QUAD -- 64-bit type, traditionally long long 1190 // WORD -- natural type of __WORDSIZE bits (int or long) 1191 // LONGWORD -- type of __WORDSIZE bits, traditionally long 1192 // 1193 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 1194 // conventional uses of `long' or `long long' type modifiers match the 1195 // types we define, even when a less-adorned type would be the same size. 1196 // This matters for (somewhat) portably writing printf/scanf formats for 1197 // these types, where using the appropriate l or ll format modifiers can 1198 // make the typedefs and the formats match up across all GNU platforms. If 1199 // we used `long' when it's 64 bits where `long long' is expected, then the 1200 // compiler would warn about the formats not matching the argument types, 1201 // and the programmer changing them to shut up the compiler would break the 1202 // program's portability. 1203 // 1204 // Here we assume what is presently the case in all the GCC configurations 1205 // we support: long long is always 64 bits, long is always word/address size, 1206 // and int is always 32 bits. 1207 1208 // No need to mark the typedef with __extension__. 1209 // bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. 1210 // Copyright (C) 2012-2020 Free Software Foundation, Inc. 1211 // This file is part of the GNU C Library. 1212 // 1213 // The GNU C Library is free software; you can redistribute it and/or 1214 // modify it under the terms of the GNU Lesser General Public 1215 // License as published by the Free Software Foundation; either 1216 // version 2.1 of the License, or (at your option) any later version. 1217 // 1218 // The GNU C Library is distributed in the hope that it will be useful, 1219 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1220 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1221 // Lesser General Public License for more details. 1222 // 1223 // You should have received a copy of the GNU Lesser General Public 1224 // License along with the GNU C Library; if not, see 1225 // <https://www.gnu.org/licenses/>. 1226 1227 // See <bits/types.h> for the meaning of these macros. This file exists so 1228 // that <bits/types.h> need not vary across different GNU platforms. 1229 1230 // X32 kernel interface is 64-bit. 1231 1232 // Tell the libc code that off_t and off64_t are actually the same type 1233 // for all ABI purposes, even if possibly expressed as different base types 1234 // for C type-checking purposes. 1235 1236 // Same for ino_t and ino64_t. 1237 1238 // And for __rlim_t and __rlim64_t. 1239 1240 // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. 1241 1242 // Number of descriptors that can fit in an `fd_set'. 1243 1244 // bits/time64.h -- underlying types for __time64_t. Generic version. 1245 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 1246 // This file is part of the GNU C Library. 1247 // 1248 // The GNU C Library is free software; you can redistribute it and/or 1249 // modify it under the terms of the GNU Lesser General Public 1250 // License as published by the Free Software Foundation; either 1251 // version 2.1 of the License, or (at your option) any later version. 1252 // 1253 // The GNU C Library is distributed in the hope that it will be useful, 1254 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1255 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1256 // Lesser General Public License for more details. 1257 // 1258 // You should have received a copy of the GNU Lesser General Public 1259 // License along with the GNU C Library; if not, see 1260 // <https://www.gnu.org/licenses/>. 1261 1262 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 1263 1264 // If we already have 64-bit time type then use it. 1265 1266 type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. 1267 type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 1268 type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 1269 type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. 1270 type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). 1271 type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 1272 type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. 1273 type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. 1274 type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 1275 type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 1276 type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 1277 type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. 1278 type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. 1279 type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). 1280 type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 1281 type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. 1282 type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 1283 type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. 1284 1285 type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. 1286 type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. 1287 1288 // Clock ID used in clock and timer functions. 1289 type X__clockid_t = int32 /* types.h:168:29 */ 1290 1291 // Timer ID returned by `timer_create'. 1292 type X__timer_t = uintptr /* types.h:171:12 */ 1293 1294 // Type to represent block size. 1295 type X__blksize_t = int64 /* types.h:174:29 */ 1296 1297 // Types from the Large File Support interface. 1298 1299 // Type to count number of disk blocks. 1300 type X__blkcnt_t = int64 /* types.h:179:28 */ 1301 type X__blkcnt64_t = int64 /* types.h:180:30 */ 1302 1303 // Type to count file system blocks. 1304 type X__fsblkcnt_t = uint64 /* types.h:183:30 */ 1305 type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ 1306 1307 // Type to count file system nodes. 1308 type X__fsfilcnt_t = uint64 /* types.h:187:30 */ 1309 type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ 1310 1311 // Type of miscellaneous file system fields. 1312 type X__fsword_t = int64 /* types.h:191:28 */ 1313 1314 type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. 1315 1316 // Signed long type used in system calls. 1317 type X__syscall_slong_t = int64 /* types.h:196:33 */ 1318 // Unsigned long type used in system calls. 1319 type X__syscall_ulong_t = uint64 /* types.h:198:33 */ 1320 1321 // These few don't really vary by system, they always correspond 1322 // 1323 // to one of the other defined types. 1324 type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). 1325 type X__caddr_t = uintptr /* types.h:203:14 */ 1326 1327 // Duplicates info from stdint.h but this is used in unistd.h. 1328 type X__intptr_t = int64 /* types.h:206:25 */ 1329 1330 // Duplicate info from sys/socket.h. 1331 type X__socklen_t = uint32 /* types.h:209:23 */ 1332 1333 // C99: An integer type that can be accessed as an atomic entity, 1334 // 1335 // even in the presence of asynchronous interrupts. 1336 // It is not currently necessary for this to be machine-specific. 1337 type X__sig_atomic_t = int32 /* types.h:214:13 */ 1338 1339 // Seconds since the Epoch, visible to user code when time_t is too 1340 // narrow only for consistency with the old way of widening too-narrow 1341 // types. User code should never use __time64_t. 1342 1343 type Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */ 1344 type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */ 1345 type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */ 1346 type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */ 1347 1348 // Wide character type. 1349 // Locale-writers should change this as necessary to 1350 // be big enough to hold unique values not between 0 and 127, 1351 // and not (wchar_t) -1, for each defined multibyte character. 1352 1353 // Define this type if we are doing the whole job, 1354 // or if we want this type in particular. 1355 1356 // A null pointer constant. 1357 1358 // Structure for scatter/gather I/O. 1359 type Iovec = struct { 1360 Fiov_base uintptr 1361 Fiov_len Size_t 1362 } /* struct_iovec.h:26:1 */ 1363 1364 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 1365 // 1366 // This file is part of GCC. 1367 // 1368 // GCC is free software; you can redistribute it and/or modify 1369 // it under the terms of the GNU General Public License as published by 1370 // the Free Software Foundation; either version 3, or (at your option) 1371 // any later version. 1372 // 1373 // GCC is distributed in the hope that it will be useful, 1374 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1375 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1376 // GNU General Public License for more details. 1377 // 1378 // Under Section 7 of GPL version 3, you are granted additional 1379 // permissions described in the GCC Runtime Library Exception, version 1380 // 3.1, as published by the Free Software Foundation. 1381 // 1382 // You should have received a copy of the GNU General Public License and 1383 // a copy of the GCC Runtime Library Exception along with this program; 1384 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1385 // <http://www.gnu.org/licenses/>. 1386 1387 // ISO C Standard: 7.17 Common definitions <stddef.h> 1388 1389 // Any one of these symbols __need_* means that GNU libc 1390 // wants us just to define one data type. So don't define 1391 // the symbols that indicate this file's entire job has been done. 1392 1393 // This avoids lossage on SunOS but only if stdtypes.h comes first. 1394 // There's no way to win with the other order! Sun lossage. 1395 1396 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 1397 // Just ignore it. 1398 1399 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 1400 // _TYPE_size_t which will typedef size_t. fixincludes patched the 1401 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 1402 // not defined, and so that defining this macro defines _GCC_SIZE_T. 1403 // If we find that the macros are still defined at this point, we must 1404 // invoke them so that the type is defined as expected. 1405 1406 // In case nobody has defined these types, but we aren't running under 1407 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 1408 // __WCHAR_TYPE__ have reasonable values. This can happen if the 1409 // parts of GCC is compiled by an older compiler, that actually 1410 // include gstddef.h, such as collect2. 1411 1412 // Signed type of difference of two pointers. 1413 1414 // Define this type if we are doing the whole job, 1415 // or if we want this type in particular. 1416 1417 // Unsigned type of `sizeof' something. 1418 1419 // Define this type if we are doing the whole job, 1420 // or if we want this type in particular. 1421 1422 // Wide character type. 1423 // Locale-writers should change this as necessary to 1424 // be big enough to hold unique values not between 0 and 127, 1425 // and not (wchar_t) -1, for each defined multibyte character. 1426 1427 // Define this type if we are doing the whole job, 1428 // or if we want this type in particular. 1429 1430 // A null pointer constant. 1431 1432 // This operating system-specific header file defines the SOCK_*, PF_*, 1433 // AF_*, MSG_*, SOL_*, and SO_* constants, and the `struct sockaddr', 1434 // `struct msghdr', and `struct linger' types. 1435 // System-specific socket constants and types. Linux version. 1436 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1437 // This file is part of the GNU C Library. 1438 // 1439 // The GNU C Library is free software; you can redistribute it and/or 1440 // modify it under the terms of the GNU Lesser General Public 1441 // License as published by the Free Software Foundation; either 1442 // version 2.1 of the License, or (at your option) any later version. 1443 // 1444 // The GNU C Library is distributed in the hope that it will be useful, 1445 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1446 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1447 // Lesser General Public License for more details. 1448 // 1449 // You should have received a copy of the GNU Lesser General Public 1450 // License along with the GNU C Library; if not, see 1451 // <https://www.gnu.org/licenses/>. 1452 1453 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 1454 // 1455 // This file is part of GCC. 1456 // 1457 // GCC is free software; you can redistribute it and/or modify 1458 // it under the terms of the GNU General Public License as published by 1459 // the Free Software Foundation; either version 3, or (at your option) 1460 // any later version. 1461 // 1462 // GCC is distributed in the hope that it will be useful, 1463 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1464 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1465 // GNU General Public License for more details. 1466 // 1467 // Under Section 7 of GPL version 3, you are granted additional 1468 // permissions described in the GCC Runtime Library Exception, version 1469 // 3.1, as published by the Free Software Foundation. 1470 // 1471 // You should have received a copy of the GNU General Public License and 1472 // a copy of the GCC Runtime Library Exception along with this program; 1473 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1474 // <http://www.gnu.org/licenses/>. 1475 1476 // ISO C Standard: 7.17 Common definitions <stddef.h> 1477 1478 // Any one of these symbols __need_* means that GNU libc 1479 // wants us just to define one data type. So don't define 1480 // the symbols that indicate this file's entire job has been done. 1481 1482 // This avoids lossage on SunOS but only if stdtypes.h comes first. 1483 // There's no way to win with the other order! Sun lossage. 1484 1485 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 1486 // Just ignore it. 1487 1488 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 1489 // _TYPE_size_t which will typedef size_t. fixincludes patched the 1490 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 1491 // not defined, and so that defining this macro defines _GCC_SIZE_T. 1492 // If we find that the macros are still defined at this point, we must 1493 // invoke them so that the type is defined as expected. 1494 1495 // In case nobody has defined these types, but we aren't running under 1496 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 1497 // __WCHAR_TYPE__ have reasonable values. This can happen if the 1498 // parts of GCC is compiled by an older compiler, that actually 1499 // include gstddef.h, such as collect2. 1500 1501 // Signed type of difference of two pointers. 1502 1503 // Define this type if we are doing the whole job, 1504 // or if we want this type in particular. 1505 1506 // Unsigned type of `sizeof' something. 1507 1508 // Define this type if we are doing the whole job, 1509 // or if we want this type in particular. 1510 1511 // Wide character type. 1512 // Locale-writers should change this as necessary to 1513 // be big enough to hold unique values not between 0 and 127, 1514 // and not (wchar_t) -1, for each defined multibyte character. 1515 1516 // Define this type if we are doing the whole job, 1517 // or if we want this type in particular. 1518 1519 // A null pointer constant. 1520 1521 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1522 // This file is part of the GNU C Library. 1523 // 1524 // The GNU C Library is free software; you can redistribute it and/or 1525 // modify it under the terms of the GNU Lesser General Public 1526 // License as published by the Free Software Foundation; either 1527 // version 2.1 of the License, or (at your option) any later version. 1528 // 1529 // The GNU C Library is distributed in the hope that it will be useful, 1530 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1531 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1532 // Lesser General Public License for more details. 1533 // 1534 // You should have received a copy of the GNU Lesser General Public 1535 // License along with the GNU C Library; if not, see 1536 // <https://www.gnu.org/licenses/>. 1537 1538 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 1539 1540 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1541 // This file is part of the GNU C Library. 1542 // 1543 // The GNU C Library is free software; you can redistribute it and/or 1544 // modify it under the terms of the GNU Lesser General Public 1545 // License as published by the Free Software Foundation; either 1546 // version 2.1 of the License, or (at your option) any later version. 1547 // 1548 // The GNU C Library is distributed in the hope that it will be useful, 1549 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1550 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1551 // Lesser General Public License for more details. 1552 // 1553 // You should have received a copy of the GNU Lesser General Public 1554 // License along with the GNU C Library; if not, see 1555 // <https://www.gnu.org/licenses/>. 1556 1557 // bits/types.h -- definitions of __*_t types underlying *_t types. 1558 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1559 // This file is part of the GNU C Library. 1560 // 1561 // The GNU C Library is free software; you can redistribute it and/or 1562 // modify it under the terms of the GNU Lesser General Public 1563 // License as published by the Free Software Foundation; either 1564 // version 2.1 of the License, or (at your option) any later version. 1565 // 1566 // The GNU C Library is distributed in the hope that it will be useful, 1567 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1568 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1569 // Lesser General Public License for more details. 1570 // 1571 // You should have received a copy of the GNU Lesser General Public 1572 // License along with the GNU C Library; if not, see 1573 // <https://www.gnu.org/licenses/>. 1574 1575 // Never include this file directly; use <sys/types.h> instead. 1576 1577 type U_char = X__u_char /* types.h:33:18 */ 1578 type U_short = X__u_short /* types.h:34:19 */ 1579 type U_int = X__u_int /* types.h:35:17 */ 1580 type U_long = X__u_long /* types.h:36:18 */ 1581 type Quad_t = X__quad_t /* types.h:37:18 */ 1582 type U_quad_t = X__u_quad_t /* types.h:38:20 */ 1583 type Fsid_t = X__fsid_t /* types.h:39:18 */ 1584 type Loff_t = X__loff_t /* types.h:42:18 */ 1585 1586 type Ino_t = X__ino64_t /* types.h:49:19 */ 1587 1588 type Dev_t = X__dev_t /* types.h:59:17 */ 1589 1590 type Gid_t = X__gid_t /* types.h:64:17 */ 1591 1592 type Mode_t = X__mode_t /* types.h:69:18 */ 1593 1594 type Nlink_t = X__nlink_t /* types.h:74:19 */ 1595 1596 type Uid_t = X__uid_t /* types.h:79:17 */ 1597 1598 type Off_t = X__off64_t /* types.h:87:19 */ 1599 1600 type Pid_t = X__pid_t /* types.h:97:17 */ 1601 1602 type Id_t = X__id_t /* types.h:103:16 */ 1603 1604 type Ssize_t = X__ssize_t /* types.h:108:19 */ 1605 1606 type Daddr_t = X__daddr_t /* types.h:114:19 */ 1607 type Caddr_t = X__caddr_t /* types.h:115:19 */ 1608 1609 type Key_t = X__key_t /* types.h:121:17 */ 1610 1611 // bits/types.h -- definitions of __*_t types underlying *_t types. 1612 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1613 // This file is part of the GNU C Library. 1614 // 1615 // The GNU C Library is free software; you can redistribute it and/or 1616 // modify it under the terms of the GNU Lesser General Public 1617 // License as published by the Free Software Foundation; either 1618 // version 2.1 of the License, or (at your option) any later version. 1619 // 1620 // The GNU C Library is distributed in the hope that it will be useful, 1621 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1622 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1623 // Lesser General Public License for more details. 1624 // 1625 // You should have received a copy of the GNU Lesser General Public 1626 // License along with the GNU C Library; if not, see 1627 // <https://www.gnu.org/licenses/>. 1628 1629 // Never include this file directly; use <sys/types.h> instead. 1630 1631 // Returned by `clock'. 1632 type Clock_t = X__clock_t /* clock_t.h:7:19 */ 1633 1634 // bits/types.h -- definitions of __*_t types underlying *_t types. 1635 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1636 // This file is part of the GNU C Library. 1637 // 1638 // The GNU C Library is free software; you can redistribute it and/or 1639 // modify it under the terms of the GNU Lesser General Public 1640 // License as published by the Free Software Foundation; either 1641 // version 2.1 of the License, or (at your option) any later version. 1642 // 1643 // The GNU C Library is distributed in the hope that it will be useful, 1644 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1645 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1646 // Lesser General Public License for more details. 1647 // 1648 // You should have received a copy of the GNU Lesser General Public 1649 // License along with the GNU C Library; if not, see 1650 // <https://www.gnu.org/licenses/>. 1651 1652 // Never include this file directly; use <sys/types.h> instead. 1653 1654 // Clock ID used in clock and timer functions. 1655 type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */ 1656 1657 // bits/types.h -- definitions of __*_t types underlying *_t types. 1658 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1659 // This file is part of the GNU C Library. 1660 // 1661 // The GNU C Library is free software; you can redistribute it and/or 1662 // modify it under the terms of the GNU Lesser General Public 1663 // License as published by the Free Software Foundation; either 1664 // version 2.1 of the License, or (at your option) any later version. 1665 // 1666 // The GNU C Library is distributed in the hope that it will be useful, 1667 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1668 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1669 // Lesser General Public License for more details. 1670 // 1671 // You should have received a copy of the GNU Lesser General Public 1672 // License along with the GNU C Library; if not, see 1673 // <https://www.gnu.org/licenses/>. 1674 1675 // Never include this file directly; use <sys/types.h> instead. 1676 1677 // Returned by `time'. 1678 type Time_t = X__time_t /* time_t.h:7:18 */ 1679 1680 // bits/types.h -- definitions of __*_t types underlying *_t types. 1681 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1682 // This file is part of the GNU C Library. 1683 // 1684 // The GNU C Library is free software; you can redistribute it and/or 1685 // modify it under the terms of the GNU Lesser General Public 1686 // License as published by the Free Software Foundation; either 1687 // version 2.1 of the License, or (at your option) any later version. 1688 // 1689 // The GNU C Library is distributed in the hope that it will be useful, 1690 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1691 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1692 // Lesser General Public License for more details. 1693 // 1694 // You should have received a copy of the GNU Lesser General Public 1695 // License along with the GNU C Library; if not, see 1696 // <https://www.gnu.org/licenses/>. 1697 1698 // Never include this file directly; use <sys/types.h> instead. 1699 1700 // Timer ID returned by `timer_create'. 1701 type Timer_t = X__timer_t /* timer_t.h:7:19 */ 1702 1703 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 1704 // 1705 // This file is part of GCC. 1706 // 1707 // GCC is free software; you can redistribute it and/or modify 1708 // it under the terms of the GNU General Public License as published by 1709 // the Free Software Foundation; either version 3, or (at your option) 1710 // any later version. 1711 // 1712 // GCC is distributed in the hope that it will be useful, 1713 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1714 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1715 // GNU General Public License for more details. 1716 // 1717 // Under Section 7 of GPL version 3, you are granted additional 1718 // permissions described in the GCC Runtime Library Exception, version 1719 // 3.1, as published by the Free Software Foundation. 1720 // 1721 // You should have received a copy of the GNU General Public License and 1722 // a copy of the GCC Runtime Library Exception along with this program; 1723 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1724 // <http://www.gnu.org/licenses/>. 1725 1726 // ISO C Standard: 7.17 Common definitions <stddef.h> 1727 1728 // Any one of these symbols __need_* means that GNU libc 1729 // wants us just to define one data type. So don't define 1730 // the symbols that indicate this file's entire job has been done. 1731 1732 // This avoids lossage on SunOS but only if stdtypes.h comes first. 1733 // There's no way to win with the other order! Sun lossage. 1734 1735 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 1736 // Just ignore it. 1737 1738 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 1739 // _TYPE_size_t which will typedef size_t. fixincludes patched the 1740 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 1741 // not defined, and so that defining this macro defines _GCC_SIZE_T. 1742 // If we find that the macros are still defined at this point, we must 1743 // invoke them so that the type is defined as expected. 1744 1745 // In case nobody has defined these types, but we aren't running under 1746 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 1747 // __WCHAR_TYPE__ have reasonable values. This can happen if the 1748 // parts of GCC is compiled by an older compiler, that actually 1749 // include gstddef.h, such as collect2. 1750 1751 // Signed type of difference of two pointers. 1752 1753 // Define this type if we are doing the whole job, 1754 // or if we want this type in particular. 1755 1756 // Unsigned type of `sizeof' something. 1757 1758 // Define this type if we are doing the whole job, 1759 // or if we want this type in particular. 1760 1761 // Wide character type. 1762 // Locale-writers should change this as necessary to 1763 // be big enough to hold unique values not between 0 and 127, 1764 // and not (wchar_t) -1, for each defined multibyte character. 1765 1766 // Define this type if we are doing the whole job, 1767 // or if we want this type in particular. 1768 1769 // A null pointer constant. 1770 1771 // Old compatibility names for C types. 1772 type Ulong = uint64 /* types.h:148:27 */ 1773 type Ushort = uint16 /* types.h:149:28 */ 1774 type Uint = uint32 /* types.h:150:22 */ 1775 1776 // These size-specific names are used by some of the inet code. 1777 1778 // Define intN_t types. 1779 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1780 // This file is part of the GNU C Library. 1781 // 1782 // The GNU C Library is free software; you can redistribute it and/or 1783 // modify it under the terms of the GNU Lesser General Public 1784 // License as published by the Free Software Foundation; either 1785 // version 2.1 of the License, or (at your option) any later version. 1786 // 1787 // The GNU C Library is distributed in the hope that it will be useful, 1788 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1789 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1790 // Lesser General Public License for more details. 1791 // 1792 // You should have received a copy of the GNU Lesser General Public 1793 // License along with the GNU C Library; if not, see 1794 // <https://www.gnu.org/licenses/>. 1795 1796 // bits/types.h -- definitions of __*_t types underlying *_t types. 1797 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1798 // This file is part of the GNU C Library. 1799 // 1800 // The GNU C Library is free software; you can redistribute it and/or 1801 // modify it under the terms of the GNU Lesser General Public 1802 // License as published by the Free Software Foundation; either 1803 // version 2.1 of the License, or (at your option) any later version. 1804 // 1805 // The GNU C Library is distributed in the hope that it will be useful, 1806 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1807 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1808 // Lesser General Public License for more details. 1809 // 1810 // You should have received a copy of the GNU Lesser General Public 1811 // License along with the GNU C Library; if not, see 1812 // <https://www.gnu.org/licenses/>. 1813 1814 // Never include this file directly; use <sys/types.h> instead. 1815 1816 type Int8_t = X__int8_t /* stdint-intn.h:24:18 */ 1817 type Int16_t = X__int16_t /* stdint-intn.h:25:19 */ 1818 type Int32_t = X__int32_t /* stdint-intn.h:26:19 */ 1819 type Int64_t = X__int64_t /* stdint-intn.h:27:19 */ 1820 1821 // These were defined by ISO C without the first `_'. 1822 type U_int8_t = X__uint8_t /* types.h:158:19 */ 1823 type U_int16_t = X__uint16_t /* types.h:159:20 */ 1824 type U_int32_t = X__uint32_t /* types.h:160:20 */ 1825 type U_int64_t = X__uint64_t /* types.h:161:20 */ 1826 1827 type Register_t = int32 /* types.h:164:13 */ 1828 1829 // It also defines `fd_set' and the FD_* macros for `select'. 1830 // `fd_set' type and related macros, and `select'/`pselect' declarations. 1831 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 1832 // This file is part of the GNU C Library. 1833 // 1834 // The GNU C Library is free software; you can redistribute it and/or 1835 // modify it under the terms of the GNU Lesser General Public 1836 // License as published by the Free Software Foundation; either 1837 // version 2.1 of the License, or (at your option) any later version. 1838 // 1839 // The GNU C Library is distributed in the hope that it will be useful, 1840 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1841 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1842 // Lesser General Public License for more details. 1843 // 1844 // You should have received a copy of the GNU Lesser General Public 1845 // License along with the GNU C Library; if not, see 1846 // <https://www.gnu.org/licenses/>. 1847 1848 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 1849 1850 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1851 // This file is part of the GNU C Library. 1852 // 1853 // The GNU C Library is free software; you can redistribute it and/or 1854 // modify it under the terms of the GNU Lesser General Public 1855 // License as published by the Free Software Foundation; either 1856 // version 2.1 of the License, or (at your option) any later version. 1857 // 1858 // The GNU C Library is distributed in the hope that it will be useful, 1859 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1860 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1861 // Lesser General Public License for more details. 1862 // 1863 // You should have received a copy of the GNU Lesser General Public 1864 // License along with the GNU C Library; if not, see 1865 // <https://www.gnu.org/licenses/>. 1866 1867 // Get definition of needed basic types. 1868 // bits/types.h -- definitions of __*_t types underlying *_t types. 1869 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1870 // This file is part of the GNU C Library. 1871 // 1872 // The GNU C Library is free software; you can redistribute it and/or 1873 // modify it under the terms of the GNU Lesser General Public 1874 // License as published by the Free Software Foundation; either 1875 // version 2.1 of the License, or (at your option) any later version. 1876 // 1877 // The GNU C Library is distributed in the hope that it will be useful, 1878 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1879 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1880 // Lesser General Public License for more details. 1881 // 1882 // You should have received a copy of the GNU Lesser General Public 1883 // License along with the GNU C Library; if not, see 1884 // <https://www.gnu.org/licenses/>. 1885 1886 // Never include this file directly; use <sys/types.h> instead. 1887 1888 // Get __FD_* definitions. 1889 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1890 // This file is part of the GNU C Library. 1891 // 1892 // The GNU C Library is free software; you can redistribute it and/or 1893 // modify it under the terms of the GNU Lesser General Public 1894 // License as published by the Free Software Foundation; either 1895 // version 2.1 of the License, or (at your option) any later version. 1896 // 1897 // The GNU C Library is distributed in the hope that it will be useful, 1898 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1899 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1900 // Lesser General Public License for more details. 1901 // 1902 // You should have received a copy of the GNU Lesser General Public 1903 // License along with the GNU C Library; if not, see 1904 // <https://www.gnu.org/licenses/>. 1905 1906 // Determine the wordsize from the preprocessor defines. 1907 1908 // Both x86-64 and x32 use the 64-bit system call interface. 1909 1910 // Get sigset_t. 1911 1912 type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */ 1913 1914 // A set of signals to be blocked, unblocked, or waited for. 1915 type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */ 1916 1917 // Get definition of timer specification structures. 1918 1919 // bits/types.h -- definitions of __*_t types underlying *_t types. 1920 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1921 // This file is part of the GNU C Library. 1922 // 1923 // The GNU C Library is free software; you can redistribute it and/or 1924 // modify it under the terms of the GNU Lesser General Public 1925 // License as published by the Free Software Foundation; either 1926 // version 2.1 of the License, or (at your option) any later version. 1927 // 1928 // The GNU C Library is distributed in the hope that it will be useful, 1929 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1930 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1931 // Lesser General Public License for more details. 1932 // 1933 // You should have received a copy of the GNU Lesser General Public 1934 // License along with the GNU C Library; if not, see 1935 // <https://www.gnu.org/licenses/>. 1936 1937 // Never include this file directly; use <sys/types.h> instead. 1938 1939 // A time value that is accurate to the nearest 1940 // 1941 // microsecond but also has a range of years. 1942 type Timeval = struct { 1943 Ftv_sec X__time_t 1944 Ftv_usec X__suseconds_t 1945 } /* struct_timeval.h:8:1 */ 1946 1947 // NB: Include guard matches what <linux/time.h> uses. 1948 1949 // bits/types.h -- definitions of __*_t types underlying *_t types. 1950 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1951 // This file is part of the GNU C Library. 1952 // 1953 // The GNU C Library is free software; you can redistribute it and/or 1954 // modify it under the terms of the GNU Lesser General Public 1955 // License as published by the Free Software Foundation; either 1956 // version 2.1 of the License, or (at your option) any later version. 1957 // 1958 // The GNU C Library is distributed in the hope that it will be useful, 1959 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1960 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1961 // Lesser General Public License for more details. 1962 // 1963 // You should have received a copy of the GNU Lesser General Public 1964 // License along with the GNU C Library; if not, see 1965 // <https://www.gnu.org/licenses/>. 1966 1967 // Never include this file directly; use <sys/types.h> instead. 1968 1969 // Endian macros for string.h functions 1970 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1971 // This file is part of the GNU C Library. 1972 // 1973 // The GNU C Library is free software; you can redistribute it and/or 1974 // modify it under the terms of the GNU Lesser General Public 1975 // License as published by the Free Software Foundation; either 1976 // version 2.1 of the License, or (at your option) any later version. 1977 // 1978 // The GNU C Library is distributed in the hope that it will be useful, 1979 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1980 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1981 // Lesser General Public License for more details. 1982 // 1983 // You should have received a copy of the GNU Lesser General Public 1984 // License along with the GNU C Library; if not, see 1985 // <http://www.gnu.org/licenses/>. 1986 1987 // POSIX.1b structure for a time value. This is like a `struct timeval' but 1988 // 1989 // has nanoseconds instead of microseconds. 1990 type Timespec = struct { 1991 Ftv_sec X__time_t 1992 Ftv_nsec X__syscall_slong_t 1993 } /* struct_timespec.h:10:1 */ 1994 1995 type Suseconds_t = X__suseconds_t /* select.h:43:23 */ 1996 1997 // The fd_set member is required to be an array of longs. 1998 type X__fd_mask = int64 /* select.h:49:18 */ 1999 2000 // Some versions of <linux/posix_types.h> define this macros. 2001 // It's easier to assume 8-bit bytes than to get CHAR_BIT. 2002 2003 // fd_set for select and pselect. 2004 type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */ 2005 2006 // Maximum number of file descriptors in `fd_set'. 2007 2008 // Sometimes the fd_set member is assumed to have this type. 2009 type Fd_mask = X__fd_mask /* select.h:77:19 */ 2010 2011 // Define some inlines helping to catch common problems. 2012 2013 type Blksize_t = X__blksize_t /* types.h:185:21 */ 2014 2015 // Types from the Large File Support interface. 2016 type Blkcnt_t = X__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks. 2017 type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks. 2018 type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes. 2019 2020 // Now add the thread types. 2021 // Declaration of common pthread types for all architectures. 2022 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2023 // This file is part of the GNU C Library. 2024 // 2025 // The GNU C Library is free software; you can redistribute it and/or 2026 // modify it under the terms of the GNU Lesser General Public 2027 // License as published by the Free Software Foundation; either 2028 // version 2.1 of the License, or (at your option) any later version. 2029 // 2030 // The GNU C Library is distributed in the hope that it will be useful, 2031 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2032 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2033 // Lesser General Public License for more details. 2034 // 2035 // You should have received a copy of the GNU Lesser General Public 2036 // License along with the GNU C Library; if not, see 2037 // <https://www.gnu.org/licenses/>. 2038 2039 // For internal mutex and condition variable definitions. 2040 // Common threading primitives definitions for both POSIX and C11. 2041 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2042 // This file is part of the GNU C Library. 2043 // 2044 // The GNU C Library is free software; you can redistribute it and/or 2045 // modify it under the terms of the GNU Lesser General Public 2046 // License as published by the Free Software Foundation; either 2047 // version 2.1 of the License, or (at your option) any later version. 2048 // 2049 // The GNU C Library is distributed in the hope that it will be useful, 2050 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2051 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2052 // Lesser General Public License for more details. 2053 // 2054 // You should have received a copy of the GNU Lesser General Public 2055 // License along with the GNU C Library; if not, see 2056 // <https://www.gnu.org/licenses/>. 2057 2058 // Arch-specific definitions. Each architecture must define the following 2059 // macros to define the expected sizes of pthread data types: 2060 // 2061 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 2062 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 2063 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 2064 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 2065 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 2066 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 2067 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 2068 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 2069 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 2070 // 2071 // The additional macro defines any constraint for the lock alignment 2072 // inside the thread structures: 2073 // 2074 // __LOCK_ALIGNMENT - for internal lock/futex usage. 2075 // 2076 // Same idea but for the once locking primitive: 2077 // 2078 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 2079 2080 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2081 // This file is part of the GNU C Library. 2082 // 2083 // The GNU C Library is free software; you can redistribute it and/or 2084 // modify it under the terms of the GNU Lesser General Public 2085 // License as published by the Free Software Foundation; either 2086 // version 2.1 of the License, or (at your option) any later version. 2087 // 2088 // The GNU C Library is distributed in the hope that it will be useful, 2089 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2090 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2091 // Lesser General Public License for more details. 2092 // 2093 // You should have received a copy of the GNU Lesser General Public 2094 // License along with the GNU C Library; if not, see 2095 // <https://www.gnu.org/licenses/>. 2096 2097 // Determine the wordsize from the preprocessor defines. 2098 2099 // Both x86-64 and x32 use the 64-bit system call interface. 2100 2101 // Common definition of pthread_mutex_t. 2102 2103 type X__pthread_internal_list = struct { 2104 F__prev uintptr 2105 F__next uintptr 2106 } /* thread-shared-types.h:49:9 */ 2107 2108 // Type to count file system inodes. 2109 2110 // Now add the thread types. 2111 // Declaration of common pthread types for all architectures. 2112 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2113 // This file is part of the GNU C Library. 2114 // 2115 // The GNU C Library is free software; you can redistribute it and/or 2116 // modify it under the terms of the GNU Lesser General Public 2117 // License as published by the Free Software Foundation; either 2118 // version 2.1 of the License, or (at your option) any later version. 2119 // 2120 // The GNU C Library is distributed in the hope that it will be useful, 2121 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2122 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2123 // Lesser General Public License for more details. 2124 // 2125 // You should have received a copy of the GNU Lesser General Public 2126 // License along with the GNU C Library; if not, see 2127 // <https://www.gnu.org/licenses/>. 2128 2129 // For internal mutex and condition variable definitions. 2130 // Common threading primitives definitions for both POSIX and C11. 2131 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2132 // This file is part of the GNU C Library. 2133 // 2134 // The GNU C Library is free software; you can redistribute it and/or 2135 // modify it under the terms of the GNU Lesser General Public 2136 // License as published by the Free Software Foundation; either 2137 // version 2.1 of the License, or (at your option) any later version. 2138 // 2139 // The GNU C Library is distributed in the hope that it will be useful, 2140 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2141 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2142 // Lesser General Public License for more details. 2143 // 2144 // You should have received a copy of the GNU Lesser General Public 2145 // License along with the GNU C Library; if not, see 2146 // <https://www.gnu.org/licenses/>. 2147 2148 // Arch-specific definitions. Each architecture must define the following 2149 // macros to define the expected sizes of pthread data types: 2150 // 2151 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 2152 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 2153 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 2154 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 2155 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 2156 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 2157 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 2158 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 2159 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 2160 // 2161 // The additional macro defines any constraint for the lock alignment 2162 // inside the thread structures: 2163 // 2164 // __LOCK_ALIGNMENT - for internal lock/futex usage. 2165 // 2166 // Same idea but for the once locking primitive: 2167 // 2168 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 2169 2170 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2171 // This file is part of the GNU C Library. 2172 // 2173 // The GNU C Library is free software; you can redistribute it and/or 2174 // modify it under the terms of the GNU Lesser General Public 2175 // License as published by the Free Software Foundation; either 2176 // version 2.1 of the License, or (at your option) any later version. 2177 // 2178 // The GNU C Library is distributed in the hope that it will be useful, 2179 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2180 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2181 // Lesser General Public License for more details. 2182 // 2183 // You should have received a copy of the GNU Lesser General Public 2184 // License along with the GNU C Library; if not, see 2185 // <https://www.gnu.org/licenses/>. 2186 2187 // Determine the wordsize from the preprocessor defines. 2188 2189 // Both x86-64 and x32 use the 64-bit system call interface. 2190 2191 // Common definition of pthread_mutex_t. 2192 2193 type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */ 2194 2195 type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */ 2196 2197 type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */ 2198 2199 // Arch-specific mutex definitions. A generic implementation is provided 2200 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 2201 // can override it by defining: 2202 // 2203 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 2204 // definition). It should contains at least the internal members 2205 // defined in the generic version. 2206 // 2207 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 2208 // atomic operations. 2209 // 2210 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 2211 // It should initialize the mutex internal flag. 2212 2213 // x86 internal mutex struct definitions. 2214 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2215 // This file is part of the GNU C Library. 2216 // 2217 // The GNU C Library is free software; you can redistribute it and/or 2218 // modify it under the terms of the GNU Lesser General Public 2219 // License as published by the Free Software Foundation; either 2220 // version 2.1 of the License, or (at your option) any later version. 2221 // 2222 // The GNU C Library is distributed in the hope that it will be useful, 2223 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2224 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2225 // Lesser General Public License for more details. 2226 // 2227 // You should have received a copy of the GNU Lesser General Public 2228 // License along with the GNU C Library; if not, see 2229 // <http://www.gnu.org/licenses/>. 2230 2231 type X__pthread_mutex_s = struct { 2232 F__lock int32 2233 F__count uint32 2234 F__owner int32 2235 F__nusers uint32 2236 F__kind int32 2237 F__spins int16 2238 F__elision int16 2239 F__list X__pthread_list_t 2240 } /* struct_mutex.h:22:1 */ 2241 2242 // Arch-sepecific read-write lock definitions. A generic implementation is 2243 // provided by struct_rwlock.h. If required, an architecture can override it 2244 // by defining: 2245 // 2246 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 2247 // It should contain at least the internal members defined in the 2248 // generic version. 2249 // 2250 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 2251 // It should initialize the rwlock internal type. 2252 2253 // x86 internal rwlock struct definitions. 2254 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2255 // 2256 // This file is part of the GNU C Library. 2257 // 2258 // The GNU C Library is free software; you can redistribute it and/or 2259 // modify it under the terms of the GNU Lesser General Public 2260 // License as published by the Free Software Foundation; either 2261 // version 2.1 of the License, or (at your option) any later version. 2262 // 2263 // The GNU C Library is distributed in the hope that it will be useful, 2264 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2265 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2266 // Lesser General Public License for more details. 2267 // 2268 // You should have received a copy of the GNU Lesser General Public 2269 // License along with the GNU C Library; if not, see 2270 // <http://www.gnu.org/licenses/>. 2271 2272 type X__pthread_rwlock_arch_t = struct { 2273 F__readers uint32 2274 F__writers uint32 2275 F__wrphase_futex uint32 2276 F__writers_futex uint32 2277 F__pad3 uint32 2278 F__pad4 uint32 2279 F__cur_writer int32 2280 F__shared int32 2281 F__rwelision int8 2282 F__pad1 [7]uint8 2283 F__pad2 uint64 2284 F__flags uint32 2285 F__ccgo_pad1 [4]byte 2286 } /* struct_rwlock.h:23:1 */ 2287 2288 // Common definition of pthread_cond_t. 2289 2290 type X__pthread_cond_s = struct { 2291 F__0 struct{ F__wseq uint64 } 2292 F__8 struct{ F__g1_start uint64 } 2293 F__g_refs [2]uint32 2294 F__g_size [2]uint32 2295 F__g1_orig_size uint32 2296 F__wrefs uint32 2297 F__g_signals [2]uint32 2298 } /* thread-shared-types.h:92:1 */ 2299 2300 // Thread identifiers. The structure of the attribute type is not 2301 // 2302 // exposed on purpose. 2303 type Pthread_t = uint64 /* pthreadtypes.h:27:27 */ 2304 2305 // Data structures for mutex handling. The structure of the attribute 2306 // 2307 // type is not exposed on purpose. 2308 type Pthread_mutexattr_t = struct { 2309 F__ccgo_pad1 [0]uint32 2310 F__size [4]int8 2311 } /* pthreadtypes.h:36:3 */ 2312 2313 // Data structure for condition variable handling. The structure of 2314 // 2315 // the attribute type is not exposed on purpose. 2316 type Pthread_condattr_t = struct { 2317 F__ccgo_pad1 [0]uint32 2318 F__size [4]int8 2319 } /* pthreadtypes.h:45:3 */ 2320 2321 // Keys for thread-specific data 2322 type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 2323 2324 // Once-only execution 2325 type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */ 2326 2327 type Pthread_attr_t1 = struct { 2328 F__ccgo_pad1 [0]uint64 2329 F__size [56]int8 2330 } /* pthreadtypes.h:56:1 */ 2331 2332 type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */ 2333 2334 type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */ 2335 2336 type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */ 2337 2338 // Data structure for reader-writer lock variable handling. The 2339 // 2340 // structure of the attribute type is deliberately not exposed. 2341 type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 2342 2343 type Pthread_rwlockattr_t = struct { 2344 F__ccgo_pad1 [0]uint64 2345 F__size [8]int8 2346 } /* pthreadtypes.h:97:3 */ 2347 2348 // POSIX spinlock data type. 2349 type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 2350 2351 // POSIX barriers data type. The structure of the type is 2352 // 2353 // deliberately not exposed. 2354 type Pthread_barrier_t = struct { 2355 F__ccgo_pad1 [0]uint64 2356 F__size [32]int8 2357 } /* pthreadtypes.h:112:3 */ 2358 2359 type Pthread_barrierattr_t = struct { 2360 F__ccgo_pad1 [0]uint32 2361 F__size [4]int8 2362 } /* pthreadtypes.h:118:3 */ 2363 2364 // Type for length arguments in socket calls. 2365 type Socklen_t = X__socklen_t /* socket.h:33:21 */ 2366 2367 // Protocol families. 2368 2369 // Address families. 2370 2371 // Socket level values. Others are defined in the appropriate headers. 2372 // 2373 // XXX These definitions also should go into the appropriate headers as 2374 // far as they are available. 2375 2376 // Maximum queue length specifiable by listen. 2377 2378 // Get the definition of the macro to define the common sockaddr members. 2379 // Definition of struct sockaddr_* common members and sizes, generic version. 2380 // Copyright (C) 1995-2020 Free Software Foundation, Inc. 2381 // This file is part of the GNU C Library. 2382 // 2383 // The GNU C Library is free software; you can redistribute it and/or 2384 // modify it under the terms of the GNU Lesser General Public 2385 // License as published by the Free Software Foundation; either 2386 // version 2.1 of the License, or (at your option) any later version. 2387 // 2388 // The GNU C Library is distributed in the hope that it will be useful, 2389 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2390 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2391 // Lesser General Public License for more details. 2392 // 2393 // You should have received a copy of the GNU Lesser General Public 2394 // License along with the GNU C Library; if not, see 2395 // <https://www.gnu.org/licenses/>. 2396 2397 // Never include this file directly; use <sys/socket.h> instead. 2398 2399 // POSIX.1g specifies this type name for the `sa_family' member. 2400 type Sa_family_t = uint16 /* sockaddr.h:28:28 */ 2401 2402 // This macro is used to declare the initial common members 2403 // of the data types used for socket addresses, `struct sockaddr', 2404 // `struct sockaddr_in', `struct sockaddr_un', etc. 2405 2406 // Size of struct sockaddr_storage. 2407 2408 // Structure describing a generic socket address. 2409 type Sockaddr = struct { 2410 Fsa_family Sa_family_t 2411 Fsa_data [14]int8 2412 } /* socket.h:178:1 */ 2413 2414 // Structure large enough to hold any socket address (with the historical 2415 // exception of AF_UNIX). 2416 2417 type Sockaddr_storage = struct { 2418 Fss_family Sa_family_t 2419 F__ss_padding [118]int8 2420 F__ss_align uint64 2421 } /* socket.h:191:1 */ 2422 2423 // Structure describing messages sent by 2424 // 2425 // `sendmsg' and received by `recvmsg'. 2426 type Msghdr = struct { 2427 Fmsg_name uintptr 2428 Fmsg_namelen Socklen_t 2429 F__ccgo_pad1 [4]byte 2430 Fmsg_iov uintptr 2431 Fmsg_iovlen Size_t 2432 Fmsg_control uintptr 2433 Fmsg_controllen Size_t 2434 Fmsg_flags int32 2435 F__ccgo_pad2 [4]byte 2436 } /* socket.h:257:1 */ 2437 2438 // Structure used for storage of ancillary data object information. 2439 type Cmsghdr = struct { 2440 F__ccgo_pad1 [0]uint64 2441 Fcmsg_len Size_t 2442 Fcmsg_level int32 2443 Fcmsg_type int32 2444 } /* socket.h:275:1 */ 2445 2446 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2447 2448 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2449 2450 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2451 2452 // This allows for 1024 file descriptors: if NR_OPEN is ever grown 2453 // beyond that you'll have to change this too. But 1024 fd's seem to be 2454 // enough even for such "real" unices like OSF/1, so hopefully this is 2455 // one limit that doesn't have to be changed [again]. 2456 // 2457 // Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in 2458 // <sys/time.h> (and thus <linux/time.h>) - but this is a more logical 2459 // place for them. Solved by having dummy defines in <sys/time.h>. 2460 2461 // This macro may have been defined in <gnu/types.h>. But we always 2462 // use the one here. 2463 2464 type X__kernel_fd_set = struct{ Ffds_bits [16]uint64 } /* posix_types.h:27:3 */ 2465 2466 // Type of a signal handler. 2467 type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */ 2468 2469 // Type of a SYSV IPC key. 2470 type X__kernel_key_t = int32 /* posix_types.h:33:13 */ 2471 type X__kernel_mqd_t = int32 /* posix_types.h:34:13 */ 2472 2473 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2474 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2475 2476 // This file is generally used by user-level software, so you need to 2477 // be a little careful about namespace pollution etc. Also, we cannot 2478 // assume GCC is being used. 2479 2480 type X__kernel_old_uid_t = uint16 /* posix_types_64.h:11:24 */ 2481 type X__kernel_old_gid_t = uint16 /* posix_types_64.h:12:24 */ 2482 2483 type X__kernel_old_dev_t = uint64 /* posix_types_64.h:15:23 */ 2484 2485 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2486 2487 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2488 2489 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2490 2491 // There seems to be no way of detecting this automatically from user 2492 // space, so 64 bit architectures should override this in their 2493 // bitsperlong.h. In particular, an architecture that supports 2494 // both 32 and 64 bit user space must not rely on CONFIG_64BIT 2495 // to decide it, but rather check a compiler provided macro. 2496 2497 // This file is generally used by user-level software, so you need to 2498 // be a little careful about namespace pollution etc. 2499 // 2500 // First the types that are often defined in different ways across 2501 // architectures, so that you can override them. 2502 2503 type X__kernel_long_t = int64 /* posix_types.h:15:15 */ 2504 type X__kernel_ulong_t = uint64 /* posix_types.h:16:23 */ 2505 2506 type X__kernel_ino_t = X__kernel_ulong_t /* posix_types.h:20:26 */ 2507 2508 type X__kernel_mode_t = uint32 /* posix_types.h:24:22 */ 2509 2510 type X__kernel_pid_t = int32 /* posix_types.h:28:14 */ 2511 2512 type X__kernel_ipc_pid_t = int32 /* posix_types.h:32:14 */ 2513 2514 type X__kernel_uid_t = uint32 /* posix_types.h:36:22 */ 2515 type X__kernel_gid_t = uint32 /* posix_types.h:37:22 */ 2516 2517 type X__kernel_suseconds_t = X__kernel_long_t /* posix_types.h:41:26 */ 2518 2519 type X__kernel_daddr_t = int32 /* posix_types.h:45:14 */ 2520 2521 type X__kernel_uid32_t = uint32 /* posix_types.h:49:22 */ 2522 type X__kernel_gid32_t = uint32 /* posix_types.h:50:22 */ 2523 2524 // Most 32 bit architectures use "unsigned int" size_t, 2525 // and all 64 bit architectures use "unsigned long" size_t. 2526 type X__kernel_size_t = X__kernel_ulong_t /* posix_types.h:72:26 */ 2527 type X__kernel_ssize_t = X__kernel_long_t /* posix_types.h:73:25 */ 2528 type X__kernel_ptrdiff_t = X__kernel_long_t /* posix_types.h:74:25 */ 2529 2530 type X__kernel_fsid_t = struct{ Fval [2]int32 } /* posix_types.h:81:3 */ 2531 2532 // anything below here should be completely generic 2533 type X__kernel_off_t = X__kernel_long_t /* posix_types.h:87:25 */ 2534 type X__kernel_loff_t = int64 /* posix_types.h:88:19 */ 2535 type X__kernel_old_time_t = X__kernel_long_t /* posix_types.h:89:25 */ 2536 type X__kernel_time_t = X__kernel_long_t /* posix_types.h:90:25 */ 2537 type X__kernel_time64_t = int64 /* posix_types.h:91:19 */ 2538 type X__kernel_clock_t = X__kernel_long_t /* posix_types.h:92:25 */ 2539 type X__kernel_timer_t = int32 /* posix_types.h:93:14 */ 2540 type X__kernel_clockid_t = int32 /* posix_types.h:94:14 */ 2541 type X__kernel_caddr_t = uintptr /* posix_types.h:95:14 */ 2542 type X__kernel_uid16_t = uint16 /* posix_types.h:96:24 */ 2543 type X__kernel_gid16_t = uint16 /* posix_types.h:97:24 */ 2544 2545 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 2546 2547 // Socket-level I/O control calls. 2548 2549 // For setsockopt(2) 2550 2551 // Security levels - as per NRL IPv6 - don't actually do anything 2552 2553 // Socket filtering 2554 2555 // Instruct lower device to use last 4-bytes of skb data as FCS 2556 2557 // on 64-bit and x32, avoid the ?: operator 2558 2559 // Structure used to manipulate the SO_LINGER option. 2560 type Linger = struct { 2561 Fl_onoff int32 2562 Fl_linger int32 2563 } /* socket.h:361:1 */ 2564 2565 // This is the 4.3 BSD `struct sockaddr' format, which is used as wire 2566 // 2567 // format in the grotty old 4.3 `talk' protocol. 2568 type Osockaddr = struct { 2569 Fsa_family uint16 2570 Fsa_data [14]uint8 2571 } /* struct_osockaddr.h:6:1 */ 2572 2573 // Define some macros helping to catch buffer overflows. 2574 2575 // bits/types.h -- definitions of __*_t types underlying *_t types. 2576 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2577 // This file is part of the GNU C Library. 2578 // 2579 // The GNU C Library is free software; you can redistribute it and/or 2580 // modify it under the terms of the GNU Lesser General Public 2581 // License as published by the Free Software Foundation; either 2582 // version 2.1 of the License, or (at your option) any later version. 2583 // 2584 // The GNU C Library is distributed in the hope that it will be useful, 2585 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2586 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2587 // Lesser General Public License for more details. 2588 // 2589 // You should have received a copy of the GNU Lesser General Public 2590 // License along with the GNU C Library; if not, see 2591 // <https://www.gnu.org/licenses/>. 2592 2593 // Never include this file directly; use <sys/types.h> instead. 2594 2595 // Internet address. 2596 type In_addr_t = Uint32_t /* in.h:30:18 */ 2597 type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */ 2598 2599 // Get system-specific definitions. 2600 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2601 // This file is part of the GNU C Library. 2602 // 2603 // The GNU C Library is free software; you can redistribute it and/or 2604 // modify it under the terms of the GNU Lesser General Public 2605 // License as published by the Free Software Foundation; either 2606 // version 2.1 of the License, or (at your option) any later version. 2607 // 2608 // The GNU C Library is distributed in the hope that it will be useful, 2609 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2610 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2611 // Lesser General Public License for more details. 2612 // 2613 // You should have received a copy of the GNU Lesser General Public 2614 // License along with the GNU C Library; if not, see 2615 // <https://www.gnu.org/licenses/>. 2616 2617 // Linux version. 2618 2619 // If the application has already included linux/in6.h from a linux-based 2620 // kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the 2621 // defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo 2622 // in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly. 2623 // Neither the linux kernel nor glibc should break this ABI without coordination. 2624 // In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check 2625 // for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for 2626 // maximum backwards compatibility. 2627 2628 // Options for use with `getsockopt' and `setsockopt' at the IP level. 2629 // The first word in the comment at the right is the data type used; 2630 // "bool" means a boolean value stored in an `int'. 2631 // For BSD compatibility. 2632 2633 // TProxy original addresses 2634 2635 // IP_MTU_DISCOVER arguments. 2636 // Always use interface mtu (ignores dst pmtu) but don't set DF flag. 2637 // Also incoming ICMP frag_needed notifications will be ignored on 2638 // this socket to prevent accepting spoofed ones. 2639 // Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented. 2640 2641 // To select the IP level. 2642 2643 // Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS. 2644 // 2645 // The `ip_dst' field is used for the first-hop gateway when using a 2646 // source route (this gets put into the header proper). 2647 type Ip_opts = struct { 2648 Fip_dst struct{ Fs_addr In_addr_t } 2649 Fip_opts [40]int8 2650 } /* in.h:142:1 */ 2651 2652 // Like `struct ip_mreq' but including interface specification by index. 2653 type Ip_mreqn = struct { 2654 Fimr_multiaddr struct{ Fs_addr In_addr_t } 2655 Fimr_address struct{ Fs_addr In_addr_t } 2656 Fimr_ifindex int32 2657 } /* in.h:149:1 */ 2658 2659 // Structure used for IP_PKTINFO. 2660 type In_pktinfo = struct { 2661 Fipi_ifindex int32 2662 Fipi_spec_dst struct{ Fs_addr In_addr_t } 2663 Fipi_addr struct{ Fs_addr In_addr_t } 2664 } /* in.h:157:1 */ 2665 2666 // Type to represent a port. 2667 type In_port_t = Uint16_t /* in.h:119:18 */ 2668 2669 // Definitions of the bits in an Internet address integer. 2670 // 2671 // On subnets, host and network parts are found according to 2672 // the subnet mask, not these masks. 2673 2674 // Address to accept any incoming messages. 2675 // Address to send to all hosts. 2676 // Address indicating an error return. 2677 2678 // Network number for local host loopback. 2679 // Address to loopback in software to local host. 2680 2681 // Defines for Multicast INADDR. 2682 2683 // IPv6 address 2684 type In6_addr = struct { 2685 F__in6_u struct { 2686 F__ccgo_pad1 [0]uint32 2687 F__u6_addr8 [16]Uint8_t 2688 } 2689 } /* in.h:212:1 */ 2690 2691 // ::1 2692 2693 // Structure describing an Internet socket address. 2694 type Sockaddr_in = struct { 2695 Fsin_family Sa_family_t 2696 Fsin_port In_port_t 2697 Fsin_addr struct{ Fs_addr In_addr_t } 2698 Fsin_zero [8]uint8 2699 } /* in.h:238:1 */ 2700 2701 // Ditto, for IPv6. 2702 type Sockaddr_in6 = struct { 2703 Fsin6_family Sa_family_t 2704 Fsin6_port In_port_t 2705 Fsin6_flowinfo Uint32_t 2706 Fsin6_addr struct { 2707 F__in6_u struct { 2708 F__ccgo_pad1 [0]uint32 2709 F__u6_addr8 [16]Uint8_t 2710 } 2711 } 2712 Fsin6_scope_id Uint32_t 2713 } /* in.h:253:1 */ 2714 2715 // IPv4 multicast request. 2716 type Ip_mreq = struct { 2717 Fimr_multiaddr struct{ Fs_addr In_addr_t } 2718 Fimr_interface struct{ Fs_addr In_addr_t } 2719 } /* in.h:265:1 */ 2720 2721 type Ip_mreq_source = struct { 2722 Fimr_multiaddr struct{ Fs_addr In_addr_t } 2723 Fimr_interface struct{ Fs_addr In_addr_t } 2724 Fimr_sourceaddr struct{ Fs_addr In_addr_t } 2725 } /* in.h:274:1 */ 2726 2727 // Likewise, for IPv6. 2728 type Ipv6_mreq = struct { 2729 Fipv6mr_multiaddr struct { 2730 F__in6_u struct { 2731 F__ccgo_pad1 [0]uint32 2732 F__u6_addr8 [16]Uint8_t 2733 } 2734 } 2735 Fipv6mr_interface uint32 2736 } /* in.h:289:1 */ 2737 2738 // Multicast group request. 2739 type Group_req = struct { 2740 Fgr_interface Uint32_t 2741 F__ccgo_pad1 [4]byte 2742 Fgr_group struct { 2743 Fss_family Sa_family_t 2744 F__ss_padding [118]int8 2745 F__ss_align uint64 2746 } 2747 } /* in.h:301:1 */ 2748 2749 type Group_source_req = struct { 2750 Fgsr_interface Uint32_t 2751 F__ccgo_pad1 [4]byte 2752 Fgsr_group struct { 2753 Fss_family Sa_family_t 2754 F__ss_padding [118]int8 2755 F__ss_align uint64 2756 } 2757 Fgsr_source struct { 2758 Fss_family Sa_family_t 2759 F__ss_padding [118]int8 2760 F__ss_align uint64 2761 } 2762 } /* in.h:310:1 */ 2763 2764 // Full-state filter operations. 2765 type Ip_msfilter = struct { 2766 Fimsf_multiaddr struct{ Fs_addr In_addr_t } 2767 Fimsf_interface struct{ Fs_addr In_addr_t } 2768 Fimsf_fmode Uint32_t 2769 Fimsf_numsrc Uint32_t 2770 Fimsf_slist [1]struct{ Fs_addr In_addr_t } 2771 } /* in.h:324:1 */ 2772 2773 type Group_filter = struct { 2774 Fgf_interface Uint32_t 2775 F__ccgo_pad1 [4]byte 2776 Fgf_group struct { 2777 Fss_family Sa_family_t 2778 F__ss_padding [118]int8 2779 F__ss_align uint64 2780 } 2781 Fgf_fmode Uint32_t 2782 Fgf_numsrc Uint32_t 2783 Fgf_slist [1]struct { 2784 Fss_family Sa_family_t 2785 F__ss_padding [118]int8 2786 F__ss_align uint64 2787 } 2788 } /* in.h:345:1 */ 2789 2790 var _ int8 /* gen.c:2:13: */