diff options
author | 2024-03-04 09:42:11 +0000 | |
---|---|---|
committer | 2024-03-04 09:42:11 +0000 | |
commit | adb4cdcf6c9eacd369eaaf5b21774b198d57c040 (patch) | |
tree | a4f9c8fe2ce147fa952bcb795690afb9bb2affcb /vendor/modernc.org/libc/netdb/netdb_linux_loong64.go | |
parent | [bugfix] update postgresqlstmt to correctly use postgres err hook (#2711) (diff) | |
download | gotosocial-adb4cdcf6c9eacd369eaaf5b21774b198d57c040.tar.xz |
[chore]: Bump modernc.org/sqlite from 1.28.0 to 1.29.2 (#2718)
Diffstat (limited to 'vendor/modernc.org/libc/netdb/netdb_linux_loong64.go')
-rw-r--r-- | vendor/modernc.org/libc/netdb/netdb_linux_loong64.go | 1504 |
1 files changed, 845 insertions, 659 deletions
diff --git a/vendor/modernc.org/libc/netdb/netdb_linux_loong64.go b/vendor/modernc.org/libc/netdb/netdb_linux_loong64.go index a995ad8d0..3fbd76404 100644 --- a/vendor/modernc.org/libc/netdb/netdb_linux_loong64.go +++ b/vendor/modernc.org/libc/netdb/netdb_linux_loong64.go @@ -1,4 +1,4 @@ -// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o netdb/netdb_linux_amd64.go -pkgname netdb', DO NOT EDIT. +// Code generated by 'ccgo netdb/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o netdb/netdb_linux_loong64.go -pkgname netdb', DO NOT EDIT. package netdb @@ -15,55 +15,56 @@ var _ atomic.Value var _ unsafe.Pointer const ( - AF_ALG = 38 // socket.h:133:1: - AF_APPLETALK = 5 // socket.h:99:1: - AF_ASH = 18 // socket.h:113:1: - AF_ATMPVC = 8 // socket.h:102:1: - AF_ATMSVC = 20 // socket.h:115:1: - AF_AX25 = 3 // socket.h:97:1: - AF_BLUETOOTH = 31 // socket.h:126:1: - AF_BRIDGE = 7 // socket.h:101:1: - AF_CAIF = 37 // socket.h:132:1: - AF_CAN = 29 // socket.h:124:1: - AF_DECnet = 12 // socket.h:106:1: - AF_ECONET = 19 // socket.h:114:1: - AF_FILE = 1 // socket.h:95:1: - AF_IB = 27 // socket.h:122:1: - AF_IEEE802154 = 36 // socket.h:131:1: - AF_INET = 2 // socket.h:96:1: - AF_INET6 = 10 // socket.h:104:1: - AF_IPX = 4 // socket.h:98:1: - AF_IRDA = 23 // socket.h:118:1: - AF_ISDN = 34 // socket.h:129:1: - AF_IUCV = 32 // socket.h:127:1: - AF_KCM = 41 // socket.h:136:1: - AF_KEY = 15 // socket.h:109:1: - AF_LLC = 26 // socket.h:121:1: - AF_LOCAL = 1 // socket.h:93:1: - AF_MAX = 45 // socket.h:140:1: - AF_MPLS = 28 // socket.h:123:1: - AF_NETBEUI = 13 // socket.h:107:1: - AF_NETLINK = 16 // socket.h:110:1: - AF_NETROM = 6 // socket.h:100:1: - AF_NFC = 39 // socket.h:134:1: - AF_PACKET = 17 // socket.h:112:1: - AF_PHONET = 35 // socket.h:130:1: - AF_PPPOX = 24 // socket.h:119:1: - AF_QIPCRTR = 42 // socket.h:137:1: - AF_RDS = 21 // socket.h:116:1: - AF_ROSE = 11 // socket.h:105:1: - AF_ROUTE = 16 // socket.h:111:1: - AF_RXRPC = 33 // socket.h:128:1: - AF_SECURITY = 14 // socket.h:108:1: - AF_SMC = 43 // socket.h:138:1: - AF_SNA = 22 // socket.h:117:1: - AF_TIPC = 30 // socket.h:125:1: - AF_UNIX = 1 // socket.h:94:1: - AF_UNSPEC = 0 // socket.h:92:1: - AF_VSOCK = 40 // socket.h:135:1: - AF_WANPIPE = 25 // socket.h:120:1: - AF_X25 = 9 // socket.h:103:1: - AF_XDP = 44 // socket.h:139:1: + AF_ALG = 38 // socket.h:134:1: + AF_APPLETALK = 5 // socket.h:100:1: + AF_ASH = 18 // socket.h:114:1: + AF_ATMPVC = 8 // socket.h:103:1: + AF_ATMSVC = 20 // socket.h:116:1: + AF_AX25 = 3 // socket.h:98:1: + AF_BLUETOOTH = 31 // socket.h:127:1: + AF_BRIDGE = 7 // socket.h:102:1: + AF_CAIF = 37 // socket.h:133:1: + AF_CAN = 29 // socket.h:125:1: + AF_DECnet = 12 // socket.h:107:1: + AF_ECONET = 19 // socket.h:115:1: + AF_FILE = 1 // socket.h:96:1: + AF_IB = 27 // socket.h:123:1: + AF_IEEE802154 = 36 // socket.h:132:1: + AF_INET = 2 // socket.h:97:1: + AF_INET6 = 10 // socket.h:105:1: + AF_IPX = 4 // socket.h:99:1: + AF_IRDA = 23 // socket.h:119:1: + AF_ISDN = 34 // socket.h:130:1: + AF_IUCV = 32 // socket.h:128:1: + AF_KCM = 41 // socket.h:137:1: + AF_KEY = 15 // socket.h:110:1: + AF_LLC = 26 // socket.h:122:1: + AF_LOCAL = 1 // socket.h:94:1: + AF_MAX = 46 // socket.h:142:1: + AF_MCTP = 45 // socket.h:141:1: + AF_MPLS = 28 // socket.h:124:1: + AF_NETBEUI = 13 // socket.h:108:1: + AF_NETLINK = 16 // socket.h:111:1: + AF_NETROM = 6 // socket.h:101:1: + AF_NFC = 39 // socket.h:135:1: + AF_PACKET = 17 // socket.h:113:1: + AF_PHONET = 35 // socket.h:131:1: + AF_PPPOX = 24 // socket.h:120:1: + AF_QIPCRTR = 42 // socket.h:138:1: + AF_RDS = 21 // socket.h:117:1: + AF_ROSE = 11 // socket.h:106:1: + AF_ROUTE = 16 // socket.h:112:1: + AF_RXRPC = 33 // socket.h:129:1: + AF_SECURITY = 14 // socket.h:109:1: + AF_SMC = 43 // socket.h:139:1: + AF_SNA = 22 // socket.h:118:1: + AF_TIPC = 30 // socket.h:126:1: + AF_UNIX = 1 // socket.h:95:1: + AF_UNSPEC = 0 // socket.h:93:1: + AF_VSOCK = 40 // socket.h:136:1: + AF_WANPIPE = 25 // socket.h:121:1: + AF_X25 = 9 // socket.h:104:1: + AF_XDP = 44 // socket.h:140:1: AI_ADDRCONFIG = 0x0020 // netdb.h:601:1: AI_ALL = 0x0010 // netdb.h:600:1: AI_CANONNAME = 0x0002 // netdb.h:597:1: @@ -87,108 +88,110 @@ const ( FIOGETOWN = 0x8903 // sockios.h:8:1: FIOSETOWN = 0x8901 // sockios.h:6:1: HOST_NOT_FOUND = 1 // netdb.h:63:1: - INET6_ADDRSTRLEN = 46 // in.h:234:1: - INET_ADDRSTRLEN = 16 // in.h:233:1: - IN_CLASSA_HOST = 16777215 // in.h:169:1: - IN_CLASSA_MAX = 128 // in.h:170:1: - IN_CLASSA_NET = 0xff000000 // in.h:167:1: - IN_CLASSA_NSHIFT = 24 // in.h:168:1: - IN_CLASSB_HOST = 65535 // in.h:175:1: - IN_CLASSB_MAX = 65536 // in.h:176:1: - IN_CLASSB_NET = 0xffff0000 // in.h:173:1: - IN_CLASSB_NSHIFT = 16 // in.h:174:1: - IN_CLASSC_HOST = 255 // in.h:181:1: - IN_CLASSC_NET = 0xffffff00 // in.h:179:1: - IN_CLASSC_NSHIFT = 8 // in.h:180:1: - IN_LOOPBACKNET = 127 // in.h:197:1: + INET6_ADDRSTRLEN = 46 // in.h:243:1: + INET_ADDRSTRLEN = 16 // in.h:242:1: + IN_CLASSA_HOST = 16777215 // in.h:175:1: + IN_CLASSA_MAX = 128 // in.h:176:1: + IN_CLASSA_NET = 0xff000000 // in.h:173:1: + IN_CLASSA_NSHIFT = 24 // in.h:174:1: + IN_CLASSB_HOST = 65535 // in.h:181:1: + IN_CLASSB_MAX = 65536 // in.h:182:1: + IN_CLASSB_NET = 0xffff0000 // in.h:179:1: + IN_CLASSB_NSHIFT = 16 // in.h:180:1: + IN_CLASSC_HOST = 255 // in.h:187:1: + IN_CLASSC_NET = 0xffffff00 // in.h:185:1: + IN_CLASSC_NSHIFT = 8 // in.h:186:1: + IN_LOOPBACKNET = 127 // in.h:206:1: IPPORT_RESERVED1 = 1024 // netdb.h:79:1: - IPV6_2292DSTOPTS = 4 // in.h:171:1: - IPV6_2292HOPLIMIT = 8 // in.h:175:1: - IPV6_2292HOPOPTS = 3 // in.h:170:1: - IPV6_2292PKTINFO = 2 // in.h:169:1: - IPV6_2292PKTOPTIONS = 6 // in.h:173:1: - IPV6_2292RTHDR = 5 // in.h:172:1: - IPV6_ADDRFORM = 1 // in.h:168:1: - IPV6_ADDR_PREFERENCES = 72 // in.h:223:1: - IPV6_ADD_MEMBERSHIP = 20 // in.h:237:1: - IPV6_AUTHHDR = 10 // in.h:180:1: - IPV6_AUTOFLOWLABEL = 70 // in.h:220:1: - IPV6_CHECKSUM = 7 // in.h:174:1: - IPV6_DONTFRAG = 62 // in.h:214:1: - IPV6_DROP_MEMBERSHIP = 21 // in.h:238:1: - IPV6_DSTOPTS = 59 // in.h:211:1: - IPV6_FREEBIND = 78 // in.h:233:1: - IPV6_HDRINCL = 36 // in.h:198:1: - IPV6_HOPLIMIT = 52 // in.h:204:1: - IPV6_HOPOPTS = 54 // in.h:206:1: - IPV6_IPSEC_POLICY = 34 // in.h:196:1: - IPV6_JOIN_ANYCAST = 27 // in.h:192:1: - IPV6_JOIN_GROUP = 20 // in.h:185:1: - IPV6_LEAVE_ANYCAST = 28 // in.h:193:1: - IPV6_LEAVE_GROUP = 21 // in.h:186:1: - IPV6_MINHOPCOUNT = 73 // in.h:226:1: - IPV6_MTU = 24 // in.h:189:1: - IPV6_MTU_DISCOVER = 23 // in.h:188:1: - IPV6_MULTICAST_ALL = 29 // in.h:194:1: - IPV6_MULTICAST_HOPS = 18 // in.h:183:1: - IPV6_MULTICAST_IF = 17 // in.h:182:1: - IPV6_MULTICAST_LOOP = 19 // in.h:184:1: - IPV6_NEXTHOP = 9 // in.h:179:1: - IPV6_ORIGDSTADDR = 74 // in.h:228:1: - IPV6_PATHMTU = 61 // in.h:213:1: - IPV6_PKTINFO = 50 // in.h:202:1: - IPV6_PMTUDISC_DO = 2 // in.h:246:1: - IPV6_PMTUDISC_DONT = 0 // in.h:244:1: - IPV6_PMTUDISC_INTERFACE = 4 // in.h:248:1: - IPV6_PMTUDISC_OMIT = 5 // in.h:249:1: - IPV6_PMTUDISC_PROBE = 3 // in.h:247:1: - IPV6_PMTUDISC_WANT = 1 // in.h:245:1: - IPV6_RECVDSTOPTS = 58 // in.h:210:1: - IPV6_RECVERR = 25 // in.h:190:1: - IPV6_RECVFRAGSIZE = 77 // in.h:232:1: - IPV6_RECVHOPLIMIT = 51 // in.h:203:1: - IPV6_RECVHOPOPTS = 53 // in.h:205:1: - IPV6_RECVORIGDSTADDR = 74 // in.h:229:1: - IPV6_RECVPATHMTU = 60 // in.h:212:1: - IPV6_RECVPKTINFO = 49 // in.h:201:1: - IPV6_RECVRTHDR = 56 // in.h:208:1: - IPV6_RECVTCLASS = 66 // in.h:217:1: - IPV6_ROUTER_ALERT = 22 // in.h:187:1: - IPV6_ROUTER_ALERT_ISOLATE = 30 // in.h:195:1: - IPV6_RTHDR = 57 // in.h:209:1: - IPV6_RTHDRDSTOPTS = 55 // in.h:207:1: - IPV6_RTHDR_LOOSE = 0 // in.h:256:1: - IPV6_RTHDR_STRICT = 1 // in.h:257:1: - IPV6_RTHDR_TYPE_0 = 0 // in.h:259:1: - IPV6_RXDSTOPTS = 59 // in.h:241:1: - IPV6_RXHOPOPTS = 54 // in.h:240:1: - IPV6_TCLASS = 67 // in.h:218:1: - IPV6_TRANSPARENT = 75 // in.h:230:1: - IPV6_UNICAST_HOPS = 16 // in.h:181:1: - IPV6_UNICAST_IF = 76 // in.h:231:1: - IPV6_V6ONLY = 26 // in.h:191:1: - IPV6_XFRM_POLICY = 35 // in.h:197:1: - IP_ADD_MEMBERSHIP = 35 // in.h:121:1: - IP_ADD_SOURCE_MEMBERSHIP = 39 // in.h:125:1: + IPV6_2292DSTOPTS = 4 // in.h:166:1: + IPV6_2292HOPLIMIT = 8 // in.h:170:1: + IPV6_2292HOPOPTS = 3 // in.h:165:1: + IPV6_2292PKTINFO = 2 // in.h:164:1: + IPV6_2292PKTOPTIONS = 6 // in.h:168:1: + IPV6_2292RTHDR = 5 // in.h:167:1: + IPV6_ADDRFORM = 1 // in.h:163:1: + IPV6_ADDR_PREFERENCES = 72 // in.h:219:1: + IPV6_ADD_MEMBERSHIP = 20 // in.h:233:1: + IPV6_AUTHHDR = 10 // in.h:175:1: + IPV6_AUTOFLOWLABEL = 70 // in.h:216:1: + IPV6_CHECKSUM = 7 // in.h:169:1: + IPV6_DONTFRAG = 62 // in.h:210:1: + IPV6_DROP_MEMBERSHIP = 21 // in.h:234:1: + IPV6_DSTOPTS = 59 // in.h:207:1: + IPV6_FREEBIND = 78 // in.h:229:1: + IPV6_HDRINCL = 36 // in.h:194:1: + IPV6_HOPLIMIT = 52 // in.h:200:1: + IPV6_HOPOPTS = 54 // in.h:202:1: + IPV6_IPSEC_POLICY = 34 // in.h:192:1: + IPV6_JOIN_ANYCAST = 27 // in.h:187:1: + IPV6_JOIN_GROUP = 20 // in.h:180:1: + IPV6_LEAVE_ANYCAST = 28 // in.h:188:1: + IPV6_LEAVE_GROUP = 21 // in.h:181:1: + IPV6_MINHOPCOUNT = 73 // in.h:222:1: + IPV6_MTU = 24 // in.h:184:1: + IPV6_MTU_DISCOVER = 23 // in.h:183:1: + IPV6_MULTICAST_ALL = 29 // in.h:189:1: + IPV6_MULTICAST_HOPS = 18 // in.h:178:1: + IPV6_MULTICAST_IF = 17 // in.h:177:1: + IPV6_MULTICAST_LOOP = 19 // in.h:179:1: + IPV6_NEXTHOP = 9 // in.h:174:1: + IPV6_ORIGDSTADDR = 74 // in.h:224:1: + IPV6_PATHMTU = 61 // in.h:209:1: + IPV6_PKTINFO = 50 // in.h:198:1: + IPV6_PMTUDISC_DO = 2 // in.h:242:1: + IPV6_PMTUDISC_DONT = 0 // in.h:240:1: + IPV6_PMTUDISC_INTERFACE = 4 // in.h:244:1: + IPV6_PMTUDISC_OMIT = 5 // in.h:245:1: + IPV6_PMTUDISC_PROBE = 3 // in.h:243:1: + IPV6_PMTUDISC_WANT = 1 // in.h:241:1: + IPV6_RECVDSTOPTS = 58 // in.h:206:1: + IPV6_RECVERR = 25 // in.h:185:1: + IPV6_RECVERR_RFC4884 = 31 // in.h:191:1: + IPV6_RECVFRAGSIZE = 77 // in.h:228:1: + IPV6_RECVHOPLIMIT = 51 // in.h:199:1: + IPV6_RECVHOPOPTS = 53 // in.h:201:1: + IPV6_RECVORIGDSTADDR = 74 // in.h:225:1: + IPV6_RECVPATHMTU = 60 // in.h:208:1: + IPV6_RECVPKTINFO = 49 // in.h:197:1: + IPV6_RECVRTHDR = 56 // in.h:204:1: + IPV6_RECVTCLASS = 66 // in.h:213:1: + IPV6_ROUTER_ALERT = 22 // in.h:182:1: + IPV6_ROUTER_ALERT_ISOLATE = 30 // in.h:190:1: + IPV6_RTHDR = 57 // in.h:205:1: + IPV6_RTHDRDSTOPTS = 55 // in.h:203:1: + IPV6_RTHDR_LOOSE = 0 // in.h:252:1: + IPV6_RTHDR_STRICT = 1 // in.h:253:1: + IPV6_RTHDR_TYPE_0 = 0 // in.h:255:1: + IPV6_RXDSTOPTS = 59 // in.h:237:1: + IPV6_RXHOPOPTS = 54 // in.h:236:1: + IPV6_TCLASS = 67 // in.h:214:1: + IPV6_TRANSPARENT = 75 // in.h:226:1: + IPV6_UNICAST_HOPS = 16 // in.h:176:1: + IPV6_UNICAST_IF = 76 // in.h:227:1: + IPV6_V6ONLY = 26 // in.h:186:1: + IPV6_XFRM_POLICY = 35 // in.h:193:1: + IP_ADD_MEMBERSHIP = 35 // in.h:122:1: + IP_ADD_SOURCE_MEMBERSHIP = 39 // in.h:126:1: IP_BIND_ADDRESS_NO_PORT = 24 // in.h:103:1: - IP_BLOCK_SOURCE = 38 // in.h:124:1: + IP_BLOCK_SOURCE = 38 // in.h:125:1: IP_CHECKSUM = 23 // in.h:102:1: - IP_DEFAULT_MULTICAST_LOOP = 1 // in.h:135:1: - IP_DEFAULT_MULTICAST_TTL = 1 // in.h:134:1: - IP_DROP_MEMBERSHIP = 36 // in.h:122:1: - IP_DROP_SOURCE_MEMBERSHIP = 40 // in.h:126:1: + IP_DEFAULT_MULTICAST_LOOP = 1 // in.h:138:1: + IP_DEFAULT_MULTICAST_TTL = 1 // in.h:137:1: + IP_DROP_MEMBERSHIP = 36 // in.h:123:1: + IP_DROP_SOURCE_MEMBERSHIP = 40 // in.h:127:1: IP_FREEBIND = 15 // in.h:89:1: IP_HDRINCL = 3 // in.h:48:1: IP_IPSEC_POLICY = 16 // in.h:90:1: - IP_MAX_MEMBERSHIPS = 20 // in.h:136:1: + IP_LOCAL_PORT_RANGE = 51 // in.h:131:1: + IP_MAX_MEMBERSHIPS = 20 // in.h:139:1: IP_MINTTL = 21 // in.h:100:1: - IP_MSFILTER = 41 // in.h:127:1: + IP_MSFILTER = 41 // in.h:128:1: IP_MTU = 14 // in.h:88:1: IP_MTU_DISCOVER = 10 // in.h:84:1: - IP_MULTICAST_ALL = 49 // in.h:128:1: - IP_MULTICAST_IF = 32 // in.h:118:1: - IP_MULTICAST_LOOP = 34 // in.h:120:1: - IP_MULTICAST_TTL = 33 // in.h:119:1: + IP_MULTICAST_ALL = 49 // in.h:129:1: + IP_MULTICAST_IF = 32 // in.h:119:1: + IP_MULTICAST_LOOP = 34 // in.h:121:1: + IP_MULTICAST_TTL = 33 // in.h:120:1: IP_NODEFRAG = 22 // in.h:101:1: IP_OPTIONS = 4 // in.h:47:1: IP_ORIGDSTADDR = 20 // in.h:97:1: @@ -196,13 +199,15 @@ const ( IP_PKTINFO = 8 // in.h:81:1: IP_PKTOPTIONS = 9 // in.h:82:1: IP_PMTUDISC = 10 // in.h:83:1: - IP_PMTUDISC_DO = 2 // in.h:109:1: - IP_PMTUDISC_DONT = 0 // in.h:107:1: - IP_PMTUDISC_INTERFACE = 4 // in.h:114:1: - IP_PMTUDISC_OMIT = 5 // in.h:116:1: - IP_PMTUDISC_PROBE = 3 // in.h:110:1: - IP_PMTUDISC_WANT = 1 // in.h:108:1: + IP_PMTUDISC_DO = 2 // in.h:110:1: + IP_PMTUDISC_DONT = 0 // in.h:108:1: + IP_PMTUDISC_INTERFACE = 4 // in.h:115:1: + IP_PMTUDISC_OMIT = 5 // in.h:117:1: + IP_PMTUDISC_PROBE = 3 // in.h:111:1: + IP_PMTUDISC_WANT = 1 // in.h:109:1: + IP_PROTOCOL = 52 // in.h:132:1: IP_RECVERR = 11 // in.h:85:1: + IP_RECVERR_RFC4884 = 26 // in.h:105:1: IP_RECVFRAGSIZE = 25 // in.h:104:1: IP_RECVOPTS = 6 // in.h:51:1: IP_RECVORIGDSTADDR = 20 // in.h:98:1: @@ -214,8 +219,8 @@ const ( IP_TOS = 1 // in.h:49:1: IP_TRANSPARENT = 19 // in.h:93:1: IP_TTL = 2 // in.h:50:1: - IP_UNBLOCK_SOURCE = 37 // in.h:123:1: - IP_UNICAST_IF = 50 // in.h:129:1: + IP_UNBLOCK_SOURCE = 37 // in.h:124:1: + IP_UNICAST_IF = 50 // in.h:130:1: IP_XFRM_POLICY = 17 // in.h:91:1: LITTLE_ENDIAN = 1234 // endian.h:27:1: MCAST_BLOCK_SOURCE = 43 // in.h:67:1: @@ -265,7 +270,8 @@ const ( PF_KEY = 15 // socket.h:58:1: PF_LLC = 26 // socket.h:70:1: PF_LOCAL = 1 // socket.h:42:1: - PF_MAX = 45 // socket.h:89:1: + PF_MAX = 46 // socket.h:90:1: + PF_MCTP = 45 // socket.h:89:1: PF_MPLS = 28 // socket.h:72:1: PF_NETBEUI = 13 // socket.h:56:1: PF_NETLINK = 16 // socket.h:59:1: @@ -289,47 +295,50 @@ const ( PF_WANPIPE = 25 // socket.h:69:1: PF_X25 = 9 // socket.h:52:1: PF_XDP = 44 // socket.h:88:1: - SCM_TIMESTAMP = 29 // socket.h:140:1: - SCM_TIMESTAMPING = 37 // socket.h:142:1: + SCM_TIMESTAMP = 29 // socket.h:156:1: + SCM_TIMESTAMPING = 37 // socket.h:158:1: SCM_TIMESTAMPING_OPT_STATS = 54 // socket.h:90:1: SCM_TIMESTAMPING_PKTINFO = 58 // socket.h:98:1: - SCM_TIMESTAMPNS = 35 // socket.h:141:1: + SCM_TIMESTAMPNS = 35 // socket.h:157:1: SCM_TXTIME = 61 // socket.h:105:1: SCM_WIFI_STATUS = 41 // socket.h:64:1: SIOCATMARK = 0x8905 // sockios.h:10:1: SIOCGPGRP = 0x8904 // sockios.h:9:1: - SIOCGSTAMP = 0x8906 // sockios.h:11:1: - SIOCGSTAMPNS = 0x8907 // sockios.h:12:1: + SIOCGSTAMPNS_OLD = 0x8907 // sockios.h:12:1: + SIOCGSTAMP_OLD = 0x8906 // sockios.h:11:1: SIOCSPGRP = 0x8902 // sockios.h:7:1: - SOL_AAL = 265 // socket.h:151:1: - SOL_ALG = 279 // socket.h:165:1: - SOL_ATM = 264 // socket.h:150:1: - SOL_BLUETOOTH = 274 // socket.h:160:1: - SOL_CAIF = 278 // socket.h:164:1: - SOL_DCCP = 269 // socket.h:155:1: - SOL_DECNET = 261 // socket.h:147:1: - SOL_ICMPV6 = 58 // in.h:253:1: - SOL_IP = 0 // in.h:132:1: - SOL_IPV6 = 41 // in.h:252:1: - SOL_IRDA = 266 // socket.h:152:1: - SOL_IUCV = 277 // socket.h:163:1: - SOL_KCM = 281 // socket.h:167:1: - SOL_LLC = 268 // socket.h:154:1: - SOL_NETBEUI = 267 // socket.h:153:1: - SOL_NETLINK = 270 // socket.h:156:1: - SOL_NFC = 280 // socket.h:166:1: - SOL_PACKET = 263 // socket.h:149:1: - SOL_PNPIPE = 275 // socket.h:161:1: - SOL_PPPOL2TP = 273 // socket.h:159:1: - SOL_RAW = 255 // socket.h:146:1: - SOL_RDS = 276 // socket.h:162:1: - SOL_RXRPC = 272 // socket.h:158:1: + SOL_AAL = 265 // socket.h:153:1: + SOL_ALG = 279 // socket.h:167:1: + SOL_ATM = 264 // socket.h:152:1: + SOL_BLUETOOTH = 274 // socket.h:162:1: + SOL_CAIF = 278 // socket.h:166:1: + SOL_DCCP = 269 // socket.h:157:1: + SOL_DECNET = 261 // socket.h:149:1: + SOL_ICMPV6 = 58 // in.h:249:1: + SOL_IP = 0 // in.h:135:1: + SOL_IPV6 = 41 // in.h:248:1: + SOL_IRDA = 266 // socket.h:154:1: + SOL_IUCV = 277 // socket.h:165:1: + SOL_KCM = 281 // socket.h:169:1: + SOL_LLC = 268 // socket.h:156:1: + SOL_MCTP = 285 // socket.h:173:1: + SOL_MPTCP = 284 // socket.h:172:1: + SOL_NETBEUI = 267 // socket.h:155:1: + SOL_NETLINK = 270 // socket.h:158:1: + SOL_NFC = 280 // socket.h:168:1: + SOL_PACKET = 263 // socket.h:151:1: + SOL_PNPIPE = 275 // socket.h:163:1: + SOL_PPPOL2TP = 273 // socket.h:161:1: + SOL_RAW = 255 // socket.h:148:1: + SOL_RDS = 276 // socket.h:164:1: + SOL_RXRPC = 272 // socket.h:160:1: + SOL_SMC = 286 // socket.h:174:1: SOL_SOCKET = 1 // socket.h:9:1: - SOL_TIPC = 271 // socket.h:157:1: - SOL_TLS = 282 // socket.h:168:1: - SOL_X25 = 262 // socket.h:148:1: - SOL_XDP = 283 // socket.h:169:1: - SOMAXCONN = 4096 // socket.h:172:1: + SOL_TIPC = 271 // socket.h:159:1: + SOL_TLS = 282 // socket.h:170:1: + SOL_X25 = 262 // socket.h:150:1: + SOL_XDP = 283 // socket.h:171:1: + SOMAXCONN = 4096 // socket.h:177:1: SO_ACCEPTCONN = 30 // socket.h:51:1: SO_ATTACH_BPF = 50 // socket.h:82:1: SO_ATTACH_FILTER = 26 // socket.h:45:1: @@ -340,7 +349,9 @@ const ( SO_BPF_EXTENSIONS = 48 // socket.h:78:1: SO_BROADCAST = 6 // socket.h:16:1: SO_BSDCOMPAT = 14 // socket.h:26:1: + SO_BUF_LOCK = 72 // socket.h:127:1: SO_BUSY_POLL = 46 // socket.h:74:1: + SO_BUSY_POLL_BUDGET = 70 // socket.h:123:1: SO_CNX_ADVICE = 53 // socket.h:88:1: SO_COOKIE = 57 // socket.h:96:1: SO_DEBUG = 1 // socket.h:11:1: @@ -359,24 +370,30 @@ const ( SO_MARK = 36 // socket.h:56:1: SO_MAX_PACING_RATE = 47 // socket.h:76:1: SO_MEMINFO = 55 // socket.h:92:1: + SO_NETNS_COOKIE = 71 // socket.h:125:1: SO_NOFCS = 43 // socket.h:68:1: SO_NO_CHECK = 11 // socket.h:23:1: SO_OOBINLINE = 10 // socket.h:22:1: SO_PASSCRED = 16 // socket.h:29:1: + SO_PASSPIDFD = 76 // socket.h:135:1: SO_PASSSEC = 34 // socket.h:54:1: SO_PEEK_OFF = 42 // socket.h:65:1: SO_PEERCRED = 17 // socket.h:30:1: SO_PEERGROUPS = 59 // socket.h:100:1: SO_PEERNAME = 28 // socket.h:49:1: + SO_PEERPIDFD = 77 // socket.h:136:1: SO_PEERSEC = 31 // socket.h:53:1: + SO_PREFER_BUSY_POLL = 69 // socket.h:122:1: SO_PRIORITY = 12 // socket.h:24:1: SO_PROTOCOL = 38 // socket.h:58:1: SO_RCVBUF = 8 // socket.h:18:1: SO_RCVBUFFORCE = 33 // socket.h:20:1: SO_RCVLOWAT = 18 // socket.h:31:1: - SO_RCVTIMEO = 20 // socket.h:129:1: + SO_RCVMARK = 75 // socket.h:133:1: + SO_RCVTIMEO = 20 // socket.h:145:1: SO_RCVTIMEO_NEW = 66 // socket.h:117:1: SO_RCVTIMEO_OLD = 20 // socket.h:33:1: + SO_RESERVE_MEM = 73 // socket.h:129:1: SO_REUSEADDR = 2 // socket.h:12:1: SO_REUSEPORT = 15 // socket.h:27:1: SO_RXQ_OVFL = 40 // socket.h:61:1: @@ -387,29 +404,31 @@ const ( SO_SNDBUF = 7 // socket.h:17:1: SO_SNDBUFFORCE = 32 // socket.h:19:1: SO_SNDLOWAT = 19 // socket.h:32:1: - SO_SNDTIMEO = 21 // socket.h:130:1: + SO_SNDTIMEO = 21 // socket.h:146:1: SO_SNDTIMEO_NEW = 67 // socket.h:118:1: SO_SNDTIMEO_OLD = 21 // socket.h:34:1: - SO_TIMESTAMP = 29 // socket.h:125:1: - SO_TIMESTAMPING = 37 // socket.h:127:1: + SO_TIMESTAMP = 29 // socket.h:141:1: + SO_TIMESTAMPING = 37 // socket.h:143:1: SO_TIMESTAMPING_NEW = 65 // socket.h:115:1: SO_TIMESTAMPING_OLD = 37 // socket.h:111:1: - SO_TIMESTAMPNS = 35 // socket.h:126:1: + SO_TIMESTAMPNS = 35 // socket.h:142:1: SO_TIMESTAMPNS_NEW = 64 // socket.h:114:1: SO_TIMESTAMPNS_OLD = 35 // socket.h:110:1: SO_TIMESTAMP_NEW = 63 // socket.h:113:1: SO_TIMESTAMP_OLD = 29 // socket.h:109:1: + SO_TXREHASH = 74 // socket.h:131:1: SO_TXTIME = 61 // socket.h:104:1: SO_TYPE = 3 // socket.h:13:1: SO_WIFI_STATUS = 41 // socket.h:63:1: SO_ZEROCOPY = 60 // socket.h:102:1: TRY_AGAIN = 2 // netdb.h:64:1: - X_ASM_X86_POSIX_TYPES_64_H = 0 // posix_types_64.h:3:1: - X_ATFILE_SOURCE = 1 // features.h:342:1: + X_ABILP64 = 3 // <predefined>:377:1: + X_ATFILE_SOURCE = 1 // features.h:353:1: + X_BITS_ATOMIC_WIDE_COUNTER_H = 0 // atomic_wide_counter.h:20:1: X_BITS_BYTESWAP_H = 1 // byteswap.h:24:1: X_BITS_ENDIANNESS_H = 1 // endianness.h:2:1: X_BITS_ENDIAN_H = 1 // endian.h:20:1: - X_BITS_PTHREADTYPES_ARCH_H = 1 // pthreadtypes-arch.h:19:1: + X_BITS_PTHREADTYPES_ARCH_H = 1 // pthreadtypes-arch.h:21:1: X_BITS_PTHREADTYPES_COMMON_H = 1 // pthreadtypes.h:20:1: X_BITS_SOCKADDR_H = 1 // sockaddr.h:24:1: X_BITS_STDINT_INTN_H = 1 // stdint-intn.h:20:1: @@ -418,15 +437,26 @@ const ( X_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: X_BITS_TYPES_H = 1 // types.h:24:1: X_BITS_UINTN_IDENTITY_H = 1 // uintn-identity.h:24:1: - X_BSD_SIZE_T_ = 0 // stddef.h:189:1: - X_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:192:1: - X_DEFAULT_SOURCE = 1 // features.h:227:1: + X_BSD_SIZE_T_ = 0 // stddef.h:193:1: + X_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:196:1: + X_DEFAULT_SOURCE = 1 // features.h:238:1: X_ENDIAN_H = 1 // endian.h:19:1: X_FEATURES_H = 1 // features.h:19:1: X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: - X_GCC_SIZE_T = 0 // stddef.h:195:1: + X_GCC_SIZE_T = 0 // stddef.h:200:1: X_LINUX_POSIX_TYPES_H = 0 // posix_types.h:3:1: - X_LP64 = 1 // <predefined>:284:1: + X_LINUX_STDDEF_H = 0 // stddef.h:3:1: + X_LOONGARCH_ARCH = "loongarch64" // <predefined>:214:1: + X_LOONGARCH_ARCH_LOONGARCH64 = 1 // <predefined>:340:1: + X_LOONGARCH_FPSET = 32 // <predefined>:265:1: + X_LOONGARCH_SIM = 3 // <predefined>:233:1: + X_LOONGARCH_SPFPSET = 32 // <predefined>:88:1: + X_LOONGARCH_SZINT = 32 // <predefined>:230:1: + X_LOONGARCH_SZLONG = 64 // <predefined>:388:1: + X_LOONGARCH_SZPTR = 64 // <predefined>:200:1: + X_LOONGARCH_TUNE = "la464" // <predefined>:245:1: + X_LOONGARCH_TUNE_LA464 = 1 // <predefined>:63:1: + X_LP64 = 1 // <predefined>:372:1: X_NETDB_H = 1 // netdb.h:23:1: X_NETINET_IN_H = 1 // in.h:19:1: X_PATH_HEQUIV = "/etc/hosts.equiv" // netdb.h:43:1: @@ -435,136 +465,33 @@ const ( X_PATH_NSSWITCH_CONF = "/etc/nsswitch.conf" // netdb.h:46:1: X_PATH_PROTOCOLS = "/etc/protocols" // netdb.h:47:1: X_PATH_SERVICES = "/etc/services" // netdb.h:48:1: - X_POSIX_C_SOURCE = 200809 // features.h:281:1: - X_POSIX_SOURCE = 1 // features.h:279:1: + X_POSIX_C_SOURCE = 200809 // features.h:292:1: + X_POSIX_SOURCE = 1 // features.h:290:1: X_RPC_NETDB_H = 1 // netdb.h:37:1: - X_RWLOCK_INTERNAL_H = 0 // struct_rwlock.h:21:1: - X_SIZET_ = 0 // stddef.h:196:1: - X_SIZE_T = 0 // stddef.h:183:1: - X_SIZE_T_ = 0 // stddef.h:188:1: - X_SIZE_T_DECLARED = 0 // stddef.h:193:1: - X_SIZE_T_DEFINED = 0 // stddef.h:191:1: - X_SIZE_T_DEFINED_ = 0 // stddef.h:190:1: + X_SIZET_ = 0 // stddef.h:201:1: + X_SIZE_T = 0 // stddef.h:187:1: + X_SIZE_T_ = 0 // stddef.h:192:1: + X_SIZE_T_DECLARED = 0 // stddef.h:197:1: + X_SIZE_T_DEFINED = 0 // stddef.h:195:1: + X_SIZE_T_DEFINED_ = 0 // stddef.h:194:1: X_SS_SIZE = 128 // sockaddr.h:40:1: - X_STDC_PREDEF_H = 1 // <predefined>:162:1: + X_STDC_PREDEF_H = 1 // <predefined>:223:1: X_STRUCT_TIMESPEC = 1 // struct_timespec.h:3:1: - X_SYS_CDEFS_H = 1 // cdefs.h:19:1: + X_SYS_CDEFS_H = 1 // cdefs.h:20:1: X_SYS_SELECT_H = 1 // select.h:22:1: - X_SYS_SIZE_T_H = 0 // stddef.h:184:1: + X_SYS_SIZE_T_H = 0 // stddef.h:188:1: X_SYS_SOCKET_H = 1 // socket.h:20:1: X_SYS_TYPES_H = 1 // types.h:23:1: X_THREAD_MUTEX_INTERNAL_H = 1 // struct_mutex.h:20:1: X_THREAD_SHARED_TYPES_H = 1 // thread-shared-types.h:20:1: - X_T_SIZE = 0 // stddef.h:186:1: - X_T_SIZE_ = 0 // stddef.h:185:1: - Linux = 1 // <predefined>:231:1: - Unix = 1 // <predefined>:177:1: -) - -// Standard well-known ports. -const ( /* in.h:122:1: */ - IPPORT_ECHO = 7 // Echo service. - IPPORT_DISCARD = 9 // Discard transmissions service. - IPPORT_SYSTAT = 11 // System status service. - IPPORT_DAYTIME = 13 // Time of day service. - IPPORT_NETSTAT = 15 // Network status service. - IPPORT_FTP = 21 // File Transfer Protocol. - IPPORT_TELNET = 23 // Telnet protocol. - IPPORT_SMTP = 25 // Simple Mail Transfer Protocol. - IPPORT_TIMESERVER = 37 // Timeserver service. - IPPORT_NAMESERVER = 42 // Domain Name Service. - IPPORT_WHOIS = 43 // Internet Whois service. - IPPORT_MTP = 57 - - IPPORT_TFTP = 69 // Trivial File Transfer Protocol. - IPPORT_RJE = 77 - IPPORT_FINGER = 79 // Finger service. - IPPORT_TTYLINK = 87 - IPPORT_SUPDUP = 95 // SUPDUP protocol. - - IPPORT_EXECSERVER = 512 // execd service. - IPPORT_LOGINSERVER = 513 // rlogind service. - IPPORT_CMDSERVER = 514 - IPPORT_EFSSERVER = 520 - - // UDP ports. - IPPORT_BIFFUDP = 512 - IPPORT_WHOSERVER = 513 - IPPORT_ROUTESERVER = 520 - - // Ports less than this value are reserved for privileged processes. - IPPORT_RESERVED = 1024 - - // Ports greater this value are reserved for (non-privileged) servers. - IPPORT_USERRESERVED = 5000 -) - -// Options for use with `getsockopt' and `setsockopt' at the IPv6 level. -// The first word in the comment at the right is the data type used; -// "bool" means a boolean value stored in an `int'. - -// Advanced API (RFC3542) (1). - -// Advanced API (RFC3542) (2). - -// RFC5014. - -// RFC5082. - -// Obsolete synonyms for the above. - -// IPV6_MTU_DISCOVER values. - -// Socket level values for IPv6. - -// Routing header options for IPv6. - -// Standard well-defined IP protocols. -const ( /* in.h:40:1: */ - IPPROTO_IP = 0 // Dummy protocol for TCP. - IPPROTO_ICMP = 1 // Internet Control Message Protocol. - IPPROTO_IGMP = 2 // Internet Group Management Protocol. - IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94). - IPPROTO_TCP = 6 // Transmission Control Protocol. - IPPROTO_EGP = 8 // Exterior Gateway Protocol. - IPPROTO_PUP = 12 // PUP protocol. - IPPROTO_UDP = 17 // User Datagram Protocol. - IPPROTO_IDP = 22 // XNS IDP protocol. - IPPROTO_TP = 29 // SO Transport Protocol Class 4. - IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol. - IPPROTO_IPV6 = 41 // IPv6 header. - IPPROTO_RSVP = 46 // Reservation Protocol. - IPPROTO_GRE = 47 // General Routing Encapsulation. - IPPROTO_ESP = 50 // encapsulating security payload. - IPPROTO_AH = 51 // authentication header. - IPPROTO_MTP = 92 // Multicast Transport Protocol. - IPPROTO_BEETPH = 94 // IP option pseudo header for BEET. - IPPROTO_ENCAP = 98 // Encapsulation Header. - IPPROTO_PIM = 103 // Protocol Independent Multicast. - IPPROTO_COMP = 108 // Compression Header Protocol. - IPPROTO_SCTP = 132 // Stream Control Transmission Protocol. - IPPROTO_UDPLITE = 136 // UDP-Lite protocol. - IPPROTO_MPLS = 137 // MPLS in IP. - IPPROTO_RAW = 255 // Raw IP packets. - IPPROTO_MAX = 256 -) - -// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel -// -// network headers first and we should use those ABI-identical definitions -// instead of our own, otherwise 0. -const ( /* in.h:99:1: */ - IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options. - IPPROTO_ROUTING = 43 // IPv6 routing header. - IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header. - IPPROTO_ICMPV6 = 58 // ICMPv6. - IPPROTO_NONE = 59 // IPv6 no next header. - IPPROTO_DSTOPTS = 60 // IPv6 destination options. - IPPROTO_MH = 135 + X_T_SIZE = 0 // stddef.h:190:1: + X_T_SIZE_ = 0 // stddef.h:189:1: + Linux = 1 // <predefined>:308:1: + Unix = 1 // <predefined>:247:1: ) // Bits in the FLAGS argument to `send', `recv', et al. -const ( /* socket.h:200:1: */ +const ( /* socket.h:205:1: */ MSG_OOB = 1 // Process out-of-band data. MSG_PEEK = 2 // Peek at incoming messages. MSG_DONTROUTE = 4 // Don't use local routing. @@ -592,13 +519,13 @@ const ( /* socket.h:200:1: */ // Socket level message types. This must match the definitions in // // <linux/socket.h>. -const ( /* socket.h:332:1: */ +const ( /* socket.h:363:1: */ SCM_RIGHTS = 1 ) // Get the architecture-dependent definition of enum __socket_type. // Define enum __socket_type for generic Linux. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -638,6 +565,111 @@ const ( /* socket_type.h:24:1: */ SOCK_NONBLOCK = 2048 ) +// If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel +// +// network headers first and we should use those ABI-identical definitions +// instead of our own, otherwise 0. +const ( /* in.h:105:1: */ + IPPROTO_HOPOPTS = 0 // IPv6 Hop-by-Hop options. + IPPROTO_ROUTING = 43 // IPv6 routing header. + IPPROTO_FRAGMENT = 44 // IPv6 fragmentation header. + IPPROTO_ICMPV6 = 58 // ICMPv6. + IPPROTO_NONE = 59 // IPv6 no next header. + IPPROTO_DSTOPTS = 60 // IPv6 destination options. + IPPROTO_MH = 135 +) + +// Standard well-known ports. +const ( /* in.h:128:1: */ + IPPORT_ECHO = 7 // Echo service. + IPPORT_DISCARD = 9 // Discard transmissions service. + IPPORT_SYSTAT = 11 // System status service. + IPPORT_DAYTIME = 13 // Time of day service. + IPPORT_NETSTAT = 15 // Network status service. + IPPORT_FTP = 21 // File Transfer Protocol. + IPPORT_TELNET = 23 // Telnet protocol. + IPPORT_SMTP = 25 // Simple Mail Transfer Protocol. + IPPORT_TIMESERVER = 37 // Timeserver service. + IPPORT_NAMESERVER = 42 // Domain Name Service. + IPPORT_WHOIS = 43 // Internet Whois service. + IPPORT_MTP = 57 + + IPPORT_TFTP = 69 // Trivial File Transfer Protocol. + IPPORT_RJE = 77 + IPPORT_FINGER = 79 // Finger service. + IPPORT_TTYLINK = 87 + IPPORT_SUPDUP = 95 // SUPDUP protocol. + + IPPORT_EXECSERVER = 512 // execd service. + IPPORT_LOGINSERVER = 513 // rlogind service. + IPPORT_CMDSERVER = 514 + IPPORT_EFSSERVER = 520 + + // UDP ports. + IPPORT_BIFFUDP = 512 + IPPORT_WHOSERVER = 513 + IPPORT_ROUTESERVER = 520 + + // Ports less than this value are reserved for privileged processes. + IPPORT_RESERVED = 1024 + + // Ports greater this value are reserved for (non-privileged) servers. + IPPORT_USERRESERVED = 5000 +) + +// Options for use with `getsockopt' and `setsockopt' at the IPv6 level. +// The first word in the comment at the right is the data type used; +// "bool" means a boolean value stored in an `int'. + +// Advanced API (RFC3542) (1). + +// Advanced API (RFC3542) (2). + +// RFC5014. + +// RFC5082. + +// Obsolete synonyms for the above. + +// IPV6_MTU_DISCOVER values. + +// Socket level values for IPv6. + +// Routing header options for IPv6. + +// Standard well-defined IP protocols. +const ( /* in.h:40:1: */ + IPPROTO_IP = 0 // Dummy protocol for TCP. + IPPROTO_ICMP = 1 // Internet Control Message Protocol. + IPPROTO_IGMP = 2 // Internet Group Management Protocol. + IPPROTO_IPIP = 4 // IPIP tunnels (older KA9Q tunnels use 94). + IPPROTO_TCP = 6 // Transmission Control Protocol. + IPPROTO_EGP = 8 // Exterior Gateway Protocol. + IPPROTO_PUP = 12 // PUP protocol. + IPPROTO_UDP = 17 // User Datagram Protocol. + IPPROTO_IDP = 22 // XNS IDP protocol. + IPPROTO_TP = 29 // SO Transport Protocol Class 4. + IPPROTO_DCCP = 33 // Datagram Congestion Control Protocol. + IPPROTO_IPV6 = 41 // IPv6 header. + IPPROTO_RSVP = 46 // Reservation Protocol. + IPPROTO_GRE = 47 // General Routing Encapsulation. + IPPROTO_ESP = 50 // encapsulating security payload. + IPPROTO_AH = 51 // authentication header. + IPPROTO_MTP = 92 // Multicast Transport Protocol. + IPPROTO_BEETPH = 94 // IP option pseudo header for BEET. + IPPROTO_ENCAP = 98 // Encapsulation Header. + IPPROTO_PIM = 103 // Protocol Independent Multicast. + IPPROTO_COMP = 108 // Compression Header Protocol. + IPPROTO_L2TP = 115 // Layer 2 Tunnelling Protocol. + IPPROTO_SCTP = 132 // Stream Control Transmission Protocol. + IPPROTO_UDPLITE = 136 // UDP-Lite protocol. + IPPROTO_MPLS = 137 // MPLS in IP. + IPPROTO_ETHERNET = 143 // Ethernet-within-IPv6 Encapsulation. + IPPROTO_RAW = 255 // Raw IP packets. + IPPROTO_MPTCP = 262 // Multipath TCP connection. + IPPROTO_MAX = 263 +) + // The following constants should be used for the second parameter of // // `shutdown'. @@ -665,7 +697,7 @@ type X__uint128_t = struct { type X__builtin_va_list = uintptr /* <builtin>:46:14 */ type X__float128 = float64 /* <builtin>:47:21 */ -// Copyright (C) 1996-2020 Free Software Foundation, Inc. +// Copyright (C) 1996-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -686,7 +718,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // host order and returned in network order (suitable for use in // system calls). -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -718,6 +750,8 @@ type X__float128 = float64 /* <builtin>:47:21 */ // Extensions to ISO C11 from TS 18661-4:2015. // __STDC_WANT_IEC_60559_TYPES_EXT__ // Extensions to ISO C11 from TS 18661-3:2015. +// __STDC_WANT_IEC_60559_EXT__ +// ISO C2X interfaces defined only in Annex F. // // _POSIX_SOURCE IEEE Std 1003.1. // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; @@ -733,12 +767,15 @@ type X__float128 = float64 /* <builtin>:47:21 */ // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. // _FILE_OFFSET_BITS=N Select default filesystem interface. // _ATFILE_SOURCE Additional *at interfaces. +// _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant) +// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. // _GNU_SOURCE All of the above, plus GNU extensions. // _DEFAULT_SOURCE The default set of features (taking precedence over // __STRICT_ANSI__). // // _FORTIFY_SOURCE Add security hardening to many library functions. -// Set to 1 or 2; 2 performs stricter checks than 1. +// Set to 1, 2 or 3; 3 performs stricter checks than 2, which +// performs stricter checks than 1. // // _REENTRANT, _THREAD_SAFE // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. @@ -779,6 +816,8 @@ type X__float128 = float64 /* <builtin>:47:21 */ // __USE_FILE_OFFSET64 Define 64bit interface as default. // __USE_MISC Define things from 4.3BSD or System V Unix. // __USE_ATFILE Define *at interfaces and AT_* constants for them. +// __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant) +// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. // __USE_GNU Define GNU extensions. // __USE_FORTIFY_LEVEL Additional security measures used, according to level. // @@ -849,6 +888,62 @@ type X__float128 = float64 /* <builtin>:47:21 */ // comprehensive support for multithreaded code. Using them never // lowers the selected level of POSIX conformance, only raises it. +// Features part to handle 64-bit time_t support. +// Copyright (C) 2021-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// We need to know the word size in order to check the time size. +// Copyright (C) 1999-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Bit size of the time_t type at glibc build time, general case. +// Copyright (C) 2018-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + +// Size in bits of the 'time_t' type of the default ABI. + // The function 'gets' existed in C89, but is impossible to use // safely. It has been removed from ISO C11 and ISO C++14. Note: for // compatibility with various implementations of <cstdio>, this test @@ -867,9 +962,15 @@ type X__float128 = float64 /* <builtin>:47:21 */ // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the // old extension. +// ISO C2X added support for a 0b or 0B prefix on binary constants as +// inputs to strtol-family functions (base 0 or 2). This macro is +// used to condition redirection in headers to allow that redirection +// to be disabled when building those functions, despite _GNU_SOURCE +// being defined. + // Get definitions of __STDC_* predefined macros, if the compiler has // not preincluded this header automatically. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -897,7 +998,8 @@ type X__float128 = float64 /* <builtin>:47:21 */ // these macros to test for features in specific releases. // This is here only because every header file already includes this one. -// Copyright (C) 1992-2020 Free Software Foundation, Inc. +// Copyright (C) 1992-2023 Free Software Foundation, Inc. +// Copyright The GNU Toolchain Authors. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -918,23 +1020,24 @@ type X__float128 = float64 /* <builtin>:47:21 */ // The GNU libc does not support any K&R compilers or the traditional mode // of ISO C compilers anymore. Check for some of the combinations not -// anymore supported. +// supported anymore. // Some user header file might have defined this before. +// Compilers that lack __has_attribute may object to +// #if defined __has_attribute && __has_attribute (...) +// even though they do not need to evaluate the right-hand side of the &&. +// Similarly for __has_builtin, etc. + // All functions, except those with callbacks or those that // synchronize memory, are leaf functions. // GCC can always grok prototypes. For C++ programs we add throw() -// to help it optimize the function calls. But this works only with -// gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions +// to help it optimize the function calls. But this only works with +// gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions // as non-throwing using a function attribute since programs can use // the -fexceptions options for C code as well. -// Compilers that are not clang may object to -// #if defined __clang__ && __has_extension(...) -// even though they do not need to evaluate the right-hand side of the &&. - // These two macros are not used in glibc anymore. They are kept here // only because some other projects expect the macros to be defined. @@ -947,6 +1050,8 @@ type X__float128 = float64 /* <builtin>:47:21 */ // Fortify support. +// Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. + // Support for flexible arrays. // Headers that should use flexible arrays only if they're "real" // (e.g. only if they won't affect sizeof()) should test @@ -967,8 +1072,8 @@ type X__float128 = float64 /* <builtin>:47:21 */ // // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) -// GCC has various useful declarations that can be made with the -// `__attribute__' syntax. All of the ways we use this do fine if +// GCC and clang have various useful declarations that can be made with +// the '__attribute__' syntax. All of the ways we use this do fine if // they are omitted for compilers that don't understand it. // At some point during the gcc 2.96 development the `malloc' attribute @@ -978,6 +1083,9 @@ type X__float128 = float64 /* <builtin>:47:21 */ // Tell the compiler which arguments to an allocation function // indicate the size of the allocation. +// Tell the compiler which argument to an allocation function +// indicates the alignment of the allocation. + // At some point during the gcc 2.96 development the `pure' attribute // for functions was introduced. We don't want to use it unconditionally // (although this would be possible) since it generates warnings. @@ -1006,8 +1114,13 @@ type X__float128 = float64 /* <builtin>:47:21 */ // unconditionally (although this would be possible) since it // generates warnings. -// The nonull function attribute allows to mark pointer parameters which -// must not be NULL. +// The nonnull function attribute marks pointer parameters that +// must not be NULL. This has the name __nonnull in glibc, +// and __attribute_nonnull__ in files shared with Gnulib to avoid +// collision with a different __nonnull in DragonFlyBSD 5.9. + +// The returns_nonnull function attribute marks the return type of the function +// as always being non-null. // If fortification mode, we warn about unused results of certain // function calls which can lead to problems. @@ -1038,11 +1151,14 @@ type X__float128 = float64 /* <builtin>:47:21 */ // `__extension__' keyword. But this is not generally available before // version 2.8. -// __restrict is known in EGCS 1.2 and above. +// __restrict is known in EGCS 1.2 and above, and in clang. +// It works also in C++ mode (outside of arrays), but only when spelled +// as '__restrict', not 'restrict'. // ISO C99 also allows to declare arrays as non-overlapping. The syntax is // array_name[restrict] -// GCC 3.1 supports this. +// GCC 3.1 and clang support this. +// This syntax is not usable in C++ mode. // Describes a char array whose address can safely be passed as the first // argument to strncpy and strncat, as the char array is not necessarily @@ -1052,11 +1168,27 @@ type X__float128 = float64 /* <builtin>:47:21 */ // Copies attributes from the declaration or type referenced by // the argument. -// Determine the wordsize from the preprocessor defines. +// Gnulib avoids including these, as they don't work on non-glibc or +// older glibc platforms. +// Copyright (C) 1999-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. -// Both x86-64 and x32 use the 64-bit system call interface. -// Properties of long double type. ldbl-96 version. -// Copyright (C) 2016-2020 Free Software Foundation, Inc. +// Properties of long double type. ldbl-128 version. +// Copyright (C) 2016-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1090,6 +1222,22 @@ type X__float128 = float64 /* <builtin>:47:21 */ // On the other hand, Clang also defines __GNUC__, so a clang-specific // check is required to enable the use of generic selection. +// Designates a 1-based positional argument ref-index of pointer type +// that can be used to access size-index elements of the pointed-to +// array according to access mode, or at least one element when +// size-index is not provided: +// access (access-mode, <ref-index> [, <size-index>]) +// For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may +// use the access attribute to get object sizes from function definition +// arguments, so we can't use them on functions we fortify. Drop the object +// size hints for such functions. + +// Designates dealloc as a function to call to deallocate objects +// allocated by the declared function. + +// Specify that a function such as setjmp or vfork may return +// twice. + // If we don't have __REDIRECT, prototypes will be missing if // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. @@ -1103,12 +1251,29 @@ type X__float128 = float64 /* <builtin>:47:21 */ // This file selects the right generated file of `__stub_FUNCTION' macros // based on the architecture being compiled for. +// Copyright (C) 1999-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. + // This file is automatically generated. // It defines a symbol `__stub_FUNCTION' for each function // in the C library which is a stub, meaning it will fail // every time called, usually setting errno to ENOSYS. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1125,7 +1290,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // License along with the GNU C Library; if not, see // <https://www.gnu.org/licenses/>. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1143,7 +1308,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // <https://www.gnu.org/licenses/>. // Define uintN_t types. -// Copyright (C) 2017-2020 Free Software Foundation, Inc. +// Copyright (C) 2017-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1161,7 +1326,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // <https://www.gnu.org/licenses/>. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1180,7 +1345,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // Never include this file directly; use <sys/types.h> instead. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1197,11 +1362,25 @@ type X__float128 = float64 /* <builtin>:47:21 */ // License along with the GNU C Library; if not, see // <https://www.gnu.org/licenses/>. -// Determine the wordsize from the preprocessor defines. +// Copyright (C) 1999-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. +// +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <https://www.gnu.org/licenses/>. -// Both x86-64 and x32 use the 64-bit system call interface. -// Bit size of the time_t type at glibc build time, x86-64 and x32 case. -// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// Bit size of the time_t type at glibc build time, general case. +// Copyright (C) 2018-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1218,7 +1397,7 @@ type X__float128 = float64 /* <builtin>:47:21 */ // License along with the GNU C Library; if not, see // <https://www.gnu.org/licenses/>. -// For others, time size is word size. +// Size in bits of the 'time_t' type of the default ABI. // Convenience types. type X__u_char = uint8 /* types.h:31:23 */ @@ -1237,14 +1416,14 @@ type X__int64_t = int64 /* types.h:44:25 */ type X__uint64_t = uint64 /* types.h:45:27 */ // Smallest types with at least a given width. -type X__int_least8_t = X__int8_t /* types.h:52:18 */ -type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ -type X__int_least16_t = X__int16_t /* types.h:54:19 */ -type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ -type X__int_least32_t = X__int32_t /* types.h:56:19 */ -type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ -type X__int_least64_t = X__int64_t /* types.h:58:19 */ -type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ +type X__int_least8_t = int8 /* types.h:52:18 */ +type X__uint_least8_t = uint8 /* types.h:53:19 */ +type X__int_least16_t = int16 /* types.h:54:19 */ +type X__uint_least16_t = uint16 /* types.h:55:20 */ +type X__int_least32_t = int32 /* types.h:56:19 */ +type X__uint_least32_t = uint32 /* types.h:57:20 */ +type X__int_least64_t = int64 /* types.h:58:19 */ +type X__uint_least64_t = uint64 /* types.h:59:20 */ // quad_t is also 64 bits. type X__quad_t = int64 /* types.h:63:18 */ @@ -1284,8 +1463,8 @@ type X__uintmax_t = uint64 /* types.h:73:27 */ // and int is always 32 bits. // No need to mark the typedef with __extension__. -// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. -// Copyright (C) 2012-2020 Free Software Foundation, Inc. +// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI. +// Copyright (C) 2011-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1299,14 +1478,12 @@ type X__uintmax_t = uint64 /* types.h:73:27 */ // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public -// License along with the GNU C Library; if not, see +// License along with the GNU C Library. If not, see // <https://www.gnu.org/licenses/>. // See <bits/types.h> for the meaning of these macros. This file exists so // that <bits/types.h> need not vary across different GNU platforms. -// X32 kernel interface is 64-bit. - // Tell the libc code that off_t and off64_t are actually the same type // for all ABI purposes, even if possibly expressed as different base types // for C type-checking purposes. @@ -1317,10 +1494,12 @@ type X__uintmax_t = uint64 /* types.h:73:27 */ // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. +// And for getitimer, setitimer and rusage + // Number of descriptors that can fit in an `fd_set'. // bits/time64.h -- underlying types for __time64_t. Generic version. -// Copyright (C) 2018-2020 Free Software Foundation, Inc. +// Copyright (C) 2018-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1347,7 +1526,7 @@ type X__gid_t = uint32 /* types.h:147:25 */ // Type of group type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. -type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. +type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. @@ -1359,69 +1538,70 @@ type X__id_t = uint32 /* types.h:159:24 */ // General type type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. +type X__suseconds64_t = int64 /* types.h:163:33 */ -type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. -type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. +type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address. +type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key. // Clock ID used in clock and timer functions. -type X__clockid_t = int32 /* types.h:168:29 */ +type X__clockid_t = int32 /* types.h:169:29 */ // Timer ID returned by `timer_create'. -type X__timer_t = uintptr /* types.h:171:12 */ +type X__timer_t = uintptr /* types.h:172:12 */ // Type to represent block size. -type X__blksize_t = int64 /* types.h:174:29 */ +type X__blksize_t = int32 /* types.h:175:29 */ // Types from the Large File Support interface. // Type to count number of disk blocks. -type X__blkcnt_t = int64 /* types.h:179:28 */ -type X__blkcnt64_t = int64 /* types.h:180:30 */ +type X__blkcnt_t = int64 /* types.h:180:28 */ +type X__blkcnt64_t = int64 /* types.h:181:30 */ // Type to count file system blocks. -type X__fsblkcnt_t = uint64 /* types.h:183:30 */ -type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ +type X__fsblkcnt_t = uint64 /* types.h:184:30 */ +type X__fsblkcnt64_t = uint64 /* types.h:185:32 */ // Type to count file system nodes. -type X__fsfilcnt_t = uint64 /* types.h:187:30 */ -type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ +type X__fsfilcnt_t = uint64 /* types.h:188:30 */ +type X__fsfilcnt64_t = uint64 /* types.h:189:32 */ // Type of miscellaneous file system fields. -type X__fsword_t = int64 /* types.h:191:28 */ +type X__fsword_t = int64 /* types.h:192:28 */ -type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. +type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error. // Signed long type used in system calls. -type X__syscall_slong_t = int64 /* types.h:196:33 */ +type X__syscall_slong_t = int64 /* types.h:197:33 */ // Unsigned long type used in system calls. -type X__syscall_ulong_t = uint64 /* types.h:198:33 */ +type X__syscall_ulong_t = uint64 /* types.h:199:33 */ // These few don't really vary by system, they always correspond // // to one of the other defined types. -type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). -type X__caddr_t = uintptr /* types.h:203:14 */ +type X__loff_t = int64 /* types.h:203:19 */ // Type of file sizes and offsets (LFS). +type X__caddr_t = uintptr /* types.h:204:14 */ // Duplicates info from stdint.h but this is used in unistd.h. -type X__intptr_t = int64 /* types.h:206:25 */ +type X__intptr_t = int64 /* types.h:207:25 */ // Duplicate info from sys/socket.h. -type X__socklen_t = uint32 /* types.h:209:23 */ +type X__socklen_t = uint32 /* types.h:210:23 */ // C99: An integer type that can be accessed as an atomic entity, // // even in the presence of asynchronous interrupts. // It is not currently necessary for this to be machine-specific. -type X__sig_atomic_t = int32 /* types.h:214:13 */ +type X__sig_atomic_t = int32 /* types.h:215:13 */ // Seconds since the Epoch, visible to user code when time_t is too // narrow only for consistency with the old way of widening too-narrow // types. User code should never use __time64_t. -type Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */ -type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */ -type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */ -type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */ +type Uint8_t = uint8 /* stdint-uintn.h:24:19 */ +type Uint16_t = uint16 /* stdint-uintn.h:25:20 */ +type Uint32_t = uint32 /* stdint-uintn.h:26:20 */ +type Uint64_t = uint64 /* stdint-uintn.h:27:20 */ // Wide character type. // Locale-writers should change this as necessary to @@ -1436,10 +1616,10 @@ type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */ // Structure for scatter/gather I/O. type Iovec = struct { Fiov_base uintptr - Fiov_len Size_t + Fiov_len uint64 } /* struct_iovec.h:26:1 */ -// Copyright (C) 1989-2020 Free Software Foundation, Inc. +// Copyright (C) 1989-2023 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -1511,7 +1691,7 @@ type Iovec = struct { // AF_*, MSG_*, SOL_*, and SO_* constants, and the `struct sockaddr', // `struct msghdr', and `struct linger' types. // System-specific socket constants and types. Linux version. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1528,7 +1708,7 @@ type Iovec = struct { // License along with the GNU C Library; if not, see // <https://www.gnu.org/licenses/>. -// Copyright (C) 1989-2020 Free Software Foundation, Inc. +// Copyright (C) 1989-2023 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -1596,7 +1776,7 @@ type Iovec = struct { // A null pointer constant. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1615,7 +1795,7 @@ type Iovec = struct { // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1633,7 +1813,7 @@ type Iovec = struct { // <https://www.gnu.org/licenses/>. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1652,42 +1832,42 @@ type Iovec = struct { // Never include this file directly; use <sys/types.h> instead. -type U_char = X__u_char /* types.h:33:18 */ -type U_short = X__u_short /* types.h:34:19 */ -type U_int = X__u_int /* types.h:35:17 */ -type U_long = X__u_long /* types.h:36:18 */ -type Quad_t = X__quad_t /* types.h:37:18 */ -type U_quad_t = X__u_quad_t /* types.h:38:20 */ -type Fsid_t = X__fsid_t /* types.h:39:18 */ -type Loff_t = X__loff_t /* types.h:42:18 */ +type U_char = uint8 /* types.h:33:18 */ +type U_short = uint16 /* types.h:34:19 */ +type U_int = uint32 /* types.h:35:17 */ +type U_long = uint64 /* types.h:36:18 */ +type Quad_t = int64 /* types.h:37:18 */ +type U_quad_t = uint64 /* types.h:38:20 */ +type Fsid_t = X__fsid_t /* types.h:39:18 */ +type Loff_t = int64 /* types.h:42:18 */ -type Ino_t = X__ino64_t /* types.h:49:19 */ +type Ino_t = uint64 /* types.h:49:19 */ -type Dev_t = X__dev_t /* types.h:59:17 */ +type Dev_t = uint64 /* types.h:59:17 */ -type Gid_t = X__gid_t /* types.h:64:17 */ +type Gid_t = uint32 /* types.h:64:17 */ -type Mode_t = X__mode_t /* types.h:69:18 */ +type Mode_t = uint32 /* types.h:69:18 */ -type Nlink_t = X__nlink_t /* types.h:74:19 */ +type Nlink_t = uint32 /* types.h:74:19 */ -type Uid_t = X__uid_t /* types.h:79:17 */ +type Uid_t = uint32 /* types.h:79:17 */ -type Off_t = X__off64_t /* types.h:87:19 */ +type Off_t = int64 /* types.h:87:19 */ -type Pid_t = X__pid_t /* types.h:97:17 */ +type Pid_t = int32 /* types.h:97:17 */ -type Id_t = X__id_t /* types.h:103:16 */ +type Id_t = uint32 /* types.h:103:16 */ -type Ssize_t = X__ssize_t /* types.h:108:19 */ +type Ssize_t = int64 /* types.h:108:19 */ -type Daddr_t = X__daddr_t /* types.h:114:19 */ -type Caddr_t = X__caddr_t /* types.h:115:19 */ +type Daddr_t = int32 /* types.h:114:19 */ +type Caddr_t = uintptr /* types.h:115:19 */ -type Key_t = X__key_t /* types.h:121:17 */ +type Key_t = int32 /* types.h:121:17 */ // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1707,10 +1887,10 @@ type Key_t = X__key_t /* types.h:121:17 */ // Never include this file directly; use <sys/types.h> instead. // Returned by `clock'. -type Clock_t = X__clock_t /* clock_t.h:7:19 */ +type Clock_t = int64 /* clock_t.h:7:19 */ // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1730,10 +1910,10 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */ // Never include this file directly; use <sys/types.h> instead. // Clock ID used in clock and timer functions. -type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */ +type Clockid_t = int32 /* clockid_t.h:7:21 */ // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1753,10 +1933,10 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */ // Never include this file directly; use <sys/types.h> instead. // Returned by `time'. -type Time_t = X__time_t /* time_t.h:7:18 */ +type Time_t = int64 /* time_t.h:10:18 */ // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1776,9 +1956,9 @@ type Time_t = X__time_t /* time_t.h:7:18 */ // Never include this file directly; use <sys/types.h> instead. // Timer ID returned by `timer_create'. -type Timer_t = X__timer_t /* timer_t.h:7:19 */ +type Timer_t = uintptr /* timer_t.h:7:19 */ -// Copyright (C) 1989-2020 Free Software Foundation, Inc. +// Copyright (C) 1989-2023 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -1854,7 +2034,7 @@ type Uint = uint32 /* types.h:150:22 */ // These size-specific names are used by some of the inet code. // Define intN_t types. -// Copyright (C) 2017-2020 Free Software Foundation, Inc. +// Copyright (C) 2017-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1872,7 +2052,7 @@ type Uint = uint32 /* types.h:150:22 */ // <https://www.gnu.org/licenses/>. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1891,22 +2071,22 @@ type Uint = uint32 /* types.h:150:22 */ // Never include this file directly; use <sys/types.h> instead. -type Int8_t = X__int8_t /* stdint-intn.h:24:18 */ -type Int16_t = X__int16_t /* stdint-intn.h:25:19 */ -type Int32_t = X__int32_t /* stdint-intn.h:26:19 */ -type Int64_t = X__int64_t /* stdint-intn.h:27:19 */ +type Int8_t = int8 /* stdint-intn.h:24:18 */ +type Int16_t = int16 /* stdint-intn.h:25:19 */ +type Int32_t = int32 /* stdint-intn.h:26:19 */ +type Int64_t = int64 /* stdint-intn.h:27:19 */ // These were defined by ISO C without the first `_'. -type U_int8_t = X__uint8_t /* types.h:158:19 */ -type U_int16_t = X__uint16_t /* types.h:159:20 */ -type U_int32_t = X__uint32_t /* types.h:160:20 */ -type U_int64_t = X__uint64_t /* types.h:161:20 */ +type U_int8_t = uint8 /* types.h:158:19 */ +type U_int16_t = uint16 /* types.h:159:20 */ +type U_int32_t = uint32 /* types.h:160:20 */ +type U_int64_t = uint64 /* types.h:161:20 */ type Register_t = int32 /* types.h:164:13 */ // It also defines `fd_set' and the FD_* macros for `select'. // `fd_set' type and related macros, and `select'/`pselect' declarations. -// Copyright (C) 1996-2020 Free Software Foundation, Inc. +// Copyright (C) 1996-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1925,7 +2105,7 @@ type Register_t = int32 /* types.h:164:13 */ // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1944,7 +2124,7 @@ type Register_t = int32 /* types.h:164:13 */ // Get definition of needed basic types. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1964,7 +2144,7 @@ type Register_t = int32 /* types.h:164:13 */ // Never include this file directly; use <sys/types.h> instead. // Get __FD_* definitions. -// Copyright (C) 1997-2020 Free Software Foundation, Inc. +// Copyright (C) 1997-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -1981,9 +2161,8 @@ type Register_t = int32 /* types.h:164:13 */ // License along with the GNU C Library; if not, see // <https://www.gnu.org/licenses/>. -// Determine the wordsize from the preprocessor defines. - -// Both x86-64 and x32 use the 64-bit system call interface. +// We don't use `memset' because this would require a prototype and +// the array isn't too big. // Get sigset_t. @@ -1995,7 +2174,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */ // Get definition of timer specification structures. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2018,14 +2197,14 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */ // // microsecond but also has a range of years. type Timeval = struct { - Ftv_sec X__time_t - Ftv_usec X__suseconds_t + Ftv_sec int64 + Ftv_usec int64 } /* struct_timeval.h:8:1 */ // NB: Include guard matches what <linux/time.h> uses. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2045,7 +2224,7 @@ type Timeval = struct { // Never include this file directly; use <sys/types.h> instead. // Endian macros for string.h functions -// Copyright (C) 1992-2020 Free Software Foundation, Inc. +// Copyright (C) 1992-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2066,11 +2245,11 @@ type Timeval = struct { // // has nanoseconds instead of microseconds. type Timespec = struct { - Ftv_sec X__time_t - Ftv_nsec X__syscall_slong_t -} /* struct_timespec.h:10:1 */ + Ftv_sec int64 + Ftv_nsec int64 +} /* struct_timespec.h:11:1 */ -type Suseconds_t = X__suseconds_t /* select.h:43:23 */ +type Suseconds_t = int64 /* select.h:43:23 */ // The fd_set member is required to be an array of longs. type X__fd_mask = int64 /* select.h:49:18 */ @@ -2079,25 +2258,25 @@ type X__fd_mask = int64 /* select.h:49:18 */ // It's easier to assume 8-bit bytes than to get CHAR_BIT. // fd_set for select and pselect. -type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */ +type Fd_set = struct{ F__fds_bits [16]int64 } /* select.h:70:5 */ // Maximum number of file descriptors in `fd_set'. // Sometimes the fd_set member is assumed to have this type. -type Fd_mask = X__fd_mask /* select.h:77:19 */ +type Fd_mask = int64 /* select.h:77:19 */ // Define some inlines helping to catch common problems. -type Blksize_t = X__blksize_t /* types.h:185:21 */ +type Blksize_t = int32 /* types.h:185:21 */ // Types from the Large File Support interface. -type Blkcnt_t = X__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks. -type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks. -type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes. +type Blkcnt_t = int64 /* types.h:205:22 */ // Type to count number of disk blocks. +type Fsblkcnt_t = uint64 /* types.h:209:24 */ // Type to count file system blocks. +type Fsfilcnt_t = uint64 /* types.h:213:24 */ // Type to count file system inodes. // Now add the thread types. // Declaration of common pthread types for all architectures. -// Copyright (C) 2017-2020 Free Software Foundation, Inc. +// Copyright (C) 2017-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2116,7 +2295,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file sys // For internal mutex and condition variable definitions. // Common threading primitives definitions for both POSIX and C11. -// Copyright (C) 2017-2020 Free Software Foundation, Inc. +// Copyright (C) 2017-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2155,7 +2334,9 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file sys // // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Machine-specific pthread type layouts. Generic version. +// Copyright (C) 2019-2023 Free Software Foundation, Inc. +// // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2170,24 +2351,9 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file sys // // You should have received a copy of the GNU Lesser General Public // License along with the GNU C Library; if not, see -// <https://www.gnu.org/licenses/>. - -// Determine the wordsize from the preprocessor defines. - -// Both x86-64 and x32 use the 64-bit system call interface. - -// Common definition of pthread_mutex_t. - -type X__pthread_internal_list = struct { - F__prev uintptr - F__next uintptr -} /* thread-shared-types.h:49:9 */ - -// Type to count file system inodes. +// <http://www.gnu.org/licenses/>. -// Now add the thread types. -// Declaration of common pthread types for all architectures. -// Copyright (C) 2017-2020 Free Software Foundation, Inc. +// Copyright (C) 1999-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2204,9 +2370,8 @@ type X__pthread_internal_list = struct { // License along with the GNU C Library; if not, see // <https://www.gnu.org/licenses/>. -// For internal mutex and condition variable definitions. -// Common threading primitives definitions for both POSIX and C11. -// Copyright (C) 2017-2020 Free Software Foundation, Inc. +// Monotonically increasing wide counters (at least 62 bits). +// Copyright (C) 2016-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2223,56 +2388,26 @@ type X__pthread_internal_list = struct { // License along with the GNU C Library; if not, see // <https://www.gnu.org/licenses/>. -// Arch-specific definitions. Each architecture must define the following -// macros to define the expected sizes of pthread data types: +// Counter that is monotonically increasing (by less than 2**31 per // -// __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. -// __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. -// __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. -// __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. -// __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. -// __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. -// __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. -// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. -// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. -// -// The additional macro defines any constraint for the lock alignment -// inside the thread structures: -// -// __LOCK_ALIGNMENT - for internal lock/futex usage. -// -// Same idea but for the once locking primitive: -// -// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. +// increment), with a single writer, and an arbitrary number of +// readers. +type X__atomic_wide_counter = struct{ F__value64 uint64 } /* atomic_wide_counter.h:33:3 */ -// Copyright (C) 2002-2020 Free Software Foundation, Inc. -// This file is part of the GNU C Library. -// -// The GNU C Library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// -// The GNU C Library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with the GNU C Library; if not, see -// <https://www.gnu.org/licenses/>. - -// Determine the wordsize from the preprocessor defines. +// Common definition of pthread_mutex_t. -// Both x86-64 and x32 use the 64-bit system call interface. +type X__pthread_internal_list = struct { + F__prev uintptr + F__next uintptr +} /* thread-shared-types.h:51:9 */ // Common definition of pthread_mutex_t. -type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */ +type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:55:3 */ -type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */ +type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:57:9 */ -type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */ +type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:60:3 */ // Arch-specific mutex definitions. A generic implementation is provided // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture @@ -2288,8 +2423,8 @@ type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58: // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. // It should initialize the mutex internal flag. -// x86 internal mutex struct definitions. -// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// Default mutex implementation struct definitions. +// Copyright (C) 2019-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2306,16 +2441,20 @@ type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58: // License along with the GNU C Library; if not, see // <http://www.gnu.org/licenses/>. +// Generic struct for both POSIX and C11 mutexes. New ports are expected +// to use the default layout, however architecture can redefine it to +// add arch-specific extension (such as lock-elision). The struct have +// a size of 32 bytes on LP32 and 40 bytes on LP64 architectures. + type X__pthread_mutex_s = struct { - F__lock int32 - F__count uint32 - F__owner int32 - F__nusers uint32 - F__kind int32 - F__spins int16 - F__elision int16 - F__list X__pthread_list_t -} /* struct_mutex.h:22:1 */ + F__lock int32 + F__count uint32 + F__owner int32 + F__nusers uint32 + F__kind int32 + F__spins int32 + F__list X__pthread_list_t +} /* struct_mutex.h:27:1 */ // Arch-sepecific read-write lock definitions. A generic implementation is // provided by struct_rwlock.h. If required, an architecture can override it @@ -2328,9 +2467,26 @@ type X__pthread_mutex_s = struct { // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. // It should initialize the rwlock internal type. -// x86 internal rwlock struct definitions. -// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// Default read-write lock implementation struct definitions. +// Copyright (C) 2019-2023 Free Software Foundation, Inc. +// This file is part of the GNU C Library. // +// The GNU C Library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// The GNU C Library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with the GNU C Library; if not, see +// <http://www.gnu.org/licenses/>. + +// Endian macros for string.h functions +// Copyright (C) 1992-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2347,6 +2503,11 @@ type X__pthread_mutex_s = struct { // License along with the GNU C Library; if not, see // <http://www.gnu.org/licenses/>. +// Generic struct for both POSIX read-write lock. New ports are expected +// to use the default layout, however archictetures can redefine it to add +// arch-specific extensions (such as lock-elision). The struct have a size +// of 32 bytes on both LP32 and LP64 architectures. + type X__pthread_rwlock_arch_t = struct { F__readers uint32 F__writers uint32 @@ -2354,26 +2515,29 @@ type X__pthread_rwlock_arch_t = struct { F__writers_futex uint32 F__pad3 uint32 F__pad4 uint32 + F__flags uint8 + F__shared uint8 + F__pad1 uint8 + F__pad2 uint8 F__cur_writer int32 - F__shared int32 - F__rwelision int8 - F__pad1 [7]uint8 - F__pad2 uint64 - F__flags uint32 - F__ccgo_pad1 [4]byte -} /* struct_rwlock.h:23:1 */ +} /* struct_rwlock.h:29:1 */ // Common definition of pthread_cond_t. type X__pthread_cond_s = struct { - F__0 struct{ F__wseq uint64 } - F__8 struct{ F__g1_start uint64 } + F__wseq X__atomic_wide_counter + F__g1_start X__atomic_wide_counter F__g_refs [2]uint32 F__g_size [2]uint32 F__g1_orig_size uint32 F__wrefs uint32 F__g_signals [2]uint32 -} /* thread-shared-types.h:92:1 */ +} /* thread-shared-types.h:94:1 */ + +type X__tss_t = uint32 /* thread-shared-types.h:105:22 */ +type X__thrd_t = uint64 /* thread-shared-types.h:106:27 */ + +type X__once_flag = struct{ F__data int32 } /* thread-shared-types.h:111:3 */ // Thread identifiers. The structure of the attribute type is not // @@ -2416,7 +2580,11 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 // Data structure for reader-writer lock variable handling. The // // structure of the attribute type is deliberately not exposed. -type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ +type Pthread_rwlock_t = struct { + F__ccgo_pad1 [0]uint64 + F__data X__pthread_rwlock_arch_t + F__ccgo_pad2 [24]byte +} /* pthreadtypes.h:91:3 */ type Pthread_rwlockattr_t = struct { F__ccgo_pad1 [0]uint64 @@ -2440,7 +2608,7 @@ type Pthread_barrierattr_t = struct { } /* pthreadtypes.h:118:3 */ // Type for length arguments in socket calls. -type Socklen_t = X__socklen_t /* socket.h:33:21 */ +type Socklen_t = uint32 /* socket.h:33:21 */ // Protocol families. @@ -2455,7 +2623,7 @@ type Socklen_t = X__socklen_t /* socket.h:33:21 */ // Get the definition of the macro to define the common sockaddr members. // Definition of struct sockaddr_* common members and sizes, generic version. -// Copyright (C) 1995-2020 Free Software Foundation, Inc. +// Copyright (C) 1995-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2485,41 +2653,41 @@ type Sa_family_t = uint16 /* sockaddr.h:28:28 */ // Structure describing a generic socket address. type Sockaddr = struct { - Fsa_family Sa_family_t + Fsa_family uint16 Fsa_data [14]int8 -} /* socket.h:178:1 */ +} /* socket.h:183:1 */ // Structure large enough to hold any socket address (with the historical // exception of AF_UNIX). type Sockaddr_storage = struct { - Fss_family Sa_family_t + Fss_family uint16 F__ss_padding [118]int8 F__ss_align uint64 -} /* socket.h:191:1 */ +} /* socket.h:196:1 */ // Structure describing messages sent by // // `sendmsg' and received by `recvmsg'. type Msghdr = struct { Fmsg_name uintptr - Fmsg_namelen Socklen_t + Fmsg_namelen uint32 F__ccgo_pad1 [4]byte Fmsg_iov uintptr - Fmsg_iovlen Size_t + Fmsg_iovlen uint64 Fmsg_control uintptr - Fmsg_controllen Size_t + Fmsg_controllen uint64 Fmsg_flags int32 F__ccgo_pad2 [4]byte -} /* socket.h:257:1 */ +} /* socket.h:262:1 */ // Structure used for storage of ancillary data object information. type Cmsghdr = struct { F__ccgo_pad1 [0]uint64 - Fcmsg_len Size_t + Fcmsg_len uint64 Fcmsg_level int32 Fcmsg_type int32 -} /* socket.h:275:1 */ +} /* socket.h:280:1 */ // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note @@ -2527,6 +2695,31 @@ type Cmsghdr = struct { // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note +// * +// __struct_group() - Create a mirrored named and anonyomous struct +// +// @TAG: The tag name for the named sub-struct (usually empty) +// @NAME: The identifier name of the mirrored sub-struct +// @ATTRS: Any struct attributes (usually empty) +// @MEMBERS: The member declarations for the mirrored structs +// +// Used to create an anonymous union of two structs with identical layout +// and size: one anonymous and one named. The former's members can be used +// normally without sub-struct naming, and the latter can be used to +// reason about the start, end, and size of the group of struct members. +// The named struct can also be explicitly tagged for layer reuse, as well +// as both having struct attributes appended. + +// * +// __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union +// +// @TYPE: The type of each flexible array element +// @NAME: The name of the flexible array member +// +// In order to have a flexible array member in a union or alone in a +// struct, it needs to be wrapped in an anonymous struct with at least 1 +// named member, but that member can be empty. + // This allows for 1024 file descriptors: if NR_OPEN is ever grown // beyond that you'll have to change this too. But 1024 fd's seem to be // enough even for such "real" unices like OSF/1, so hopefully this is @@ -2549,28 +2742,14 @@ type X__kernel_key_t = int32 /* posix_types.h:33:13 */ type X__kernel_mqd_t = int32 /* posix_types.h:34:13 */ // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note -// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note - -// This file is generally used by user-level software, so you need to -// be a little careful about namespace pollution etc. Also, we cannot -// assume GCC is being used. - -type X__kernel_old_uid_t = uint16 /* posix_types_64.h:11:24 */ -type X__kernel_old_gid_t = uint16 /* posix_types_64.h:12:24 */ - -type X__kernel_old_dev_t = uint64 /* posix_types_64.h:15:23 */ - -// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note - -// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note -// There seems to be no way of detecting this automatically from user -// space, so 64 bit architectures should override this in their -// bitsperlong.h. In particular, an architecture that supports -// both 32 and 64 bit user space must not rely on CONFIG_64BIT -// to decide it, but rather check a compiler provided macro. +// In order to keep safe and avoid regression, only unify uapi +// bitsperlong.h for some archs which are using newer toolchains +// that have the definitions of __CHAR_BIT__ and __SIZEOF_LONG__. +// See the following link for more info: +// https://lore.kernel.org/linux-arch/b9624545-2c80-49a1-ac3c-39264a591f7b@app.fastmail.com/ // This file is generally used by user-level software, so you need to // be a little careful about namespace pollution etc. @@ -2581,7 +2760,7 @@ type X__kernel_old_dev_t = uint64 /* posix_types_64.h:15:23 */ type X__kernel_long_t = int64 /* posix_types.h:15:15 */ type X__kernel_ulong_t = uint64 /* posix_types.h:16:23 */ -type X__kernel_ino_t = X__kernel_ulong_t /* posix_types.h:20:26 */ +type X__kernel_ino_t = uint64 /* posix_types.h:20:26 */ type X__kernel_mode_t = uint32 /* posix_types.h:24:22 */ @@ -2592,33 +2771,38 @@ type X__kernel_ipc_pid_t = int32 /* posix_types.h:32:14 */ type X__kernel_uid_t = uint32 /* posix_types.h:36:22 */ type X__kernel_gid_t = uint32 /* posix_types.h:37:22 */ -type X__kernel_suseconds_t = X__kernel_long_t /* posix_types.h:41:26 */ +type X__kernel_suseconds_t = int64 /* posix_types.h:41:26 */ type X__kernel_daddr_t = int32 /* posix_types.h:45:14 */ type X__kernel_uid32_t = uint32 /* posix_types.h:49:22 */ type X__kernel_gid32_t = uint32 /* posix_types.h:50:22 */ +type X__kernel_old_uid_t = uint32 /* posix_types.h:54:24 */ +type X__kernel_old_gid_t = uint32 /* posix_types.h:55:24 */ + +type X__kernel_old_dev_t = uint32 /* posix_types.h:59:22 */ + // Most 32 bit architectures use "unsigned int" size_t, // and all 64 bit architectures use "unsigned long" size_t. -type X__kernel_size_t = X__kernel_ulong_t /* posix_types.h:72:26 */ -type X__kernel_ssize_t = X__kernel_long_t /* posix_types.h:73:25 */ -type X__kernel_ptrdiff_t = X__kernel_long_t /* posix_types.h:74:25 */ +type X__kernel_size_t = uint64 /* posix_types.h:72:26 */ +type X__kernel_ssize_t = int64 /* posix_types.h:73:25 */ +type X__kernel_ptrdiff_t = int64 /* posix_types.h:74:25 */ type X__kernel_fsid_t = struct{ Fval [2]int32 } /* posix_types.h:81:3 */ // anything below here should be completely generic -type X__kernel_off_t = X__kernel_long_t /* posix_types.h:87:25 */ -type X__kernel_loff_t = int64 /* posix_types.h:88:19 */ -type X__kernel_old_time_t = X__kernel_long_t /* posix_types.h:89:25 */ -type X__kernel_time_t = X__kernel_long_t /* posix_types.h:90:25 */ -type X__kernel_time64_t = int64 /* posix_types.h:91:19 */ -type X__kernel_clock_t = X__kernel_long_t /* posix_types.h:92:25 */ -type X__kernel_timer_t = int32 /* posix_types.h:93:14 */ -type X__kernel_clockid_t = int32 /* posix_types.h:94:14 */ -type X__kernel_caddr_t = uintptr /* posix_types.h:95:14 */ -type X__kernel_uid16_t = uint16 /* posix_types.h:96:24 */ -type X__kernel_gid16_t = uint16 /* posix_types.h:97:24 */ +type X__kernel_off_t = int64 /* posix_types.h:87:25 */ +type X__kernel_loff_t = int64 /* posix_types.h:88:19 */ +type X__kernel_old_time_t = int64 /* posix_types.h:89:25 */ +type X__kernel_time_t = int64 /* posix_types.h:90:25 */ +type X__kernel_time64_t = int64 /* posix_types.h:91:19 */ +type X__kernel_clock_t = int64 /* posix_types.h:92:25 */ +type X__kernel_timer_t = int32 /* posix_types.h:93:14 */ +type X__kernel_clockid_t = int32 /* posix_types.h:94:14 */ +type X__kernel_caddr_t = uintptr /* posix_types.h:95:14 */ +type X__kernel_uid16_t = uint16 /* posix_types.h:96:24 */ +type X__kernel_gid16_t = uint16 /* posix_types.h:97:24 */ // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note @@ -2638,7 +2822,7 @@ type X__kernel_gid16_t = uint16 /* posix_types.h:97:24 */ type Linger = struct { Fl_onoff int32 Fl_linger int32 -} /* socket.h:361:1 */ +} /* socket.h:392:1 */ // This is the 4.3 BSD `struct sockaddr' format, which is used as wire // @@ -2651,7 +2835,7 @@ type Osockaddr = struct { // Define some macros helping to catch buffer overflows. // bits/types.h -- definitions of __*_t types underlying *_t types. -// Copyright (C) 2002-2020 Free Software Foundation, Inc. +// Copyright (C) 2002-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2671,11 +2855,11 @@ type Osockaddr = struct { // Never include this file directly; use <sys/types.h> instead. // Internet address. -type In_addr_t = Uint32_t /* in.h:30:18 */ -type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */ +type In_addr_t = uint32 /* in.h:30:18 */ +type In_addr = struct{ Fs_addr uint32 } /* in.h:31:1 */ // Get system-specific definitions. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2723,26 +2907,19 @@ type In_addr = struct{ Fs_addr In_addr_t } /* in.h:31:1 */ // The `ip_dst' field is used for the first-hop gateway when using a // source route (this gets put into the header proper). type Ip_opts = struct { - Fip_dst struct{ Fs_addr In_addr_t } + Fip_dst struct{ Fs_addr uint32 } Fip_opts [40]int8 -} /* in.h:142:1 */ - -// Like `struct ip_mreq' but including interface specification by index. -type Ip_mreqn = struct { - Fimr_multiaddr struct{ Fs_addr In_addr_t } - Fimr_address struct{ Fs_addr In_addr_t } - Fimr_ifindex int32 -} /* in.h:149:1 */ +} /* in.h:145:1 */ // Structure used for IP_PKTINFO. type In_pktinfo = struct { Fipi_ifindex int32 - Fipi_spec_dst struct{ Fs_addr In_addr_t } - Fipi_addr struct{ Fs_addr In_addr_t } -} /* in.h:157:1 */ + Fipi_spec_dst struct{ Fs_addr uint32 } + Fipi_addr struct{ Fs_addr uint32 } +} /* in.h:152:1 */ // Type to represent a port. -type In_port_t = Uint16_t /* in.h:119:18 */ +type In_port_t = uint16 /* in.h:125:18 */ // Definitions of the bits in an Internet address integer. // @@ -2752,6 +2929,8 @@ type In_port_t = Uint16_t /* in.h:119:18 */ // Address to accept any incoming messages. // Address to send to all hosts. // Address indicating an error return. +// Dummy address for source of ICMPv6 errors converted to IPv4 (RFC +// 7600). // Network number for local host loopback. // Address to loopback in software to local host. @@ -2762,111 +2941,118 @@ type In_port_t = Uint16_t /* in.h:119:18 */ type In6_addr = struct { F__in6_u struct { F__ccgo_pad1 [0]uint32 - F__u6_addr8 [16]Uint8_t + F__u6_addr8 [16]uint8 } -} /* in.h:212:1 */ +} /* in.h:221:1 */ // ::1 // Structure describing an Internet socket address. type Sockaddr_in = struct { - Fsin_family Sa_family_t - Fsin_port In_port_t - Fsin_addr struct{ Fs_addr In_addr_t } + Fsin_family uint16 + Fsin_port uint16 + Fsin_addr struct{ Fs_addr uint32 } Fsin_zero [8]uint8 -} /* in.h:238:1 */ +} /* in.h:247:1 */ // Ditto, for IPv6. type Sockaddr_in6 = struct { - Fsin6_family Sa_family_t - Fsin6_port In_port_t - Fsin6_flowinfo Uint32_t + Fsin6_family uint16 + Fsin6_port uint16 + Fsin6_flowinfo uint32 Fsin6_addr struct { F__in6_u struct { F__ccgo_pad1 [0]uint32 - F__u6_addr8 [16]Uint8_t + F__u6_addr8 [16]uint8 } } - Fsin6_scope_id Uint32_t -} /* in.h:253:1 */ + Fsin6_scope_id uint32 +} /* in.h:262:1 */ // IPv4 multicast request. type Ip_mreq = struct { - Fimr_multiaddr struct{ Fs_addr In_addr_t } - Fimr_interface struct{ Fs_addr In_addr_t } -} /* in.h:265:1 */ + Fimr_multiaddr struct{ Fs_addr uint32 } + Fimr_interface struct{ Fs_addr uint32 } +} /* in.h:274:1 */ + +// IPv4 multicast request with interface index. +type Ip_mreqn = struct { + Fimr_multiaddr struct{ Fs_addr uint32 } + Fimr_address struct{ Fs_addr uint32 } + Fimr_ifindex int32 +} /* in.h:284:1 */ type Ip_mreq_source = struct { - Fimr_multiaddr struct{ Fs_addr In_addr_t } - Fimr_interface struct{ Fs_addr In_addr_t } - Fimr_sourceaddr struct{ Fs_addr In_addr_t } -} /* in.h:274:1 */ + Fimr_multiaddr struct{ Fs_addr uint32 } + Fimr_interface struct{ Fs_addr uint32 } + Fimr_sourceaddr struct{ Fs_addr uint32 } +} /* in.h:296:1 */ // Likewise, for IPv6. type Ipv6_mreq = struct { Fipv6mr_multiaddr struct { F__in6_u struct { F__ccgo_pad1 [0]uint32 - F__u6_addr8 [16]Uint8_t + F__u6_addr8 [16]uint8 } } Fipv6mr_interface uint32 -} /* in.h:289:1 */ +} /* in.h:311:1 */ // Multicast group request. type Group_req = struct { - Fgr_interface Uint32_t + Fgr_interface uint32 F__ccgo_pad1 [4]byte Fgr_group struct { - Fss_family Sa_family_t + Fss_family uint16 F__ss_padding [118]int8 F__ss_align uint64 } -} /* in.h:301:1 */ +} /* in.h:323:1 */ type Group_source_req = struct { - Fgsr_interface Uint32_t + Fgsr_interface uint32 F__ccgo_pad1 [4]byte Fgsr_group struct { - Fss_family Sa_family_t + Fss_family uint16 F__ss_padding [118]int8 F__ss_align uint64 } Fgsr_source struct { - Fss_family Sa_family_t + Fss_family uint16 F__ss_padding [118]int8 F__ss_align uint64 } -} /* in.h:310:1 */ +} /* in.h:332:1 */ // Full-state filter operations. type Ip_msfilter = struct { - Fimsf_multiaddr struct{ Fs_addr In_addr_t } - Fimsf_interface struct{ Fs_addr In_addr_t } - Fimsf_fmode Uint32_t - Fimsf_numsrc Uint32_t - Fimsf_slist [1]struct{ Fs_addr In_addr_t } -} /* in.h:324:1 */ + Fimsf_multiaddr struct{ Fs_addr uint32 } + Fimsf_interface struct{ Fs_addr uint32 } + Fimsf_fmode uint32 + Fimsf_numsrc uint32 + Fimsf_slist [1]struct{ Fs_addr uint32 } +} /* in.h:346:1 */ type Group_filter = struct { - Fgf_interface Uint32_t + Fgf_interface uint32 F__ccgo_pad1 [4]byte Fgf_group struct { - Fss_family Sa_family_t + Fss_family uint16 F__ss_padding [118]int8 F__ss_align uint64 } - Fgf_fmode Uint32_t - Fgf_numsrc Uint32_t + Fgf_fmode uint32 + Fgf_numsrc uint32 Fgf_slist [1]struct { - Fss_family Sa_family_t + Fss_family uint16 F__ss_padding [118]int8 F__ss_align uint64 } -} /* in.h:345:1 */ +} /* in.h:367:1 */ // Define uintN_t types. -// Copyright (C) 2017-2020 Free Software Foundation, Inc. +// Copyright (C) 2017-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2918,7 +3104,7 @@ type Group_filter = struct { // added multiple inclusion protection and use of <sys/cdefs.h>. // In GNU this file is #include'd by <netdb.h>. -// Copyright (C) 1991-2020 Free Software Foundation, Inc. +// Copyright (C) 1991-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -2935,7 +3121,7 @@ type Group_filter = struct { // License along with the GNU C Library; if not, see // <https://www.gnu.org/licenses/>. -// Copyright (C) 1989-2020 Free Software Foundation, Inc. +// Copyright (C) 1989-2023 Free Software Foundation, Inc. // // This file is part of GCC. // @@ -3010,7 +3196,7 @@ type Rpcent = struct { F__ccgo_pad1 [4]byte } /* netdb.h:46:1 */ -// Copyright (C) 1996-2020 Free Software Foundation, Inc. +// Copyright (C) 1996-2023 Free Software Foundation, Inc. // This file is part of the GNU C Library. // // The GNU C Library is free software; you can redistribute it and/or @@ -3035,7 +3221,7 @@ type Netent = struct { Fn_name uintptr Fn_aliases uintptr Fn_addrtype int32 - Fn_net Uint32_t + Fn_net uint32 } /* netdb.h:26:1 */ // Description of data base entry for a single host. @@ -3071,7 +3257,7 @@ type Addrinfo = struct { Fai_family int32 Fai_socktype int32 Fai_protocol int32 - Fai_addrlen Socklen_t + Fai_addrlen uint32 F__ccgo_pad1 [4]byte Fai_addr uintptr Fai_canonname uintptr |