summaryrefslogtreecommitdiff
path: root/vendor/modernc.org/libc/sys
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/modernc.org/libc/sys')
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go2
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go2
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_386.go2
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_amd64.go2
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_arm.go2
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_arm64.go2
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_linux_s390x.go2
-rw-r--r--vendor/modernc.org/libc/sys/socket/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go28
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go28
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_freebsd_amd64.go32
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_386.go767
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_amd64.go767
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_arm.go843
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_arm64.go829
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_linux_s390x.go771
-rw-r--r--vendor/modernc.org/libc/sys/socket/socket_netbsd_amd64.go863
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go2
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go2
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_386.go2
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_amd64.go2
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_arm.go2
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_arm64.go2
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_linux_s390x.go2
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_windows_386.go2
-rw-r--r--vendor/modernc.org/libc/sys/stat/capi_windows_amd64.go2
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go14
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go10
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_freebsd_amd64.go34
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_386.go312
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_amd64.go281
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_arm.go340
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_arm64.go471
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_linux_s390x.go286
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_netbsd_amd64.go2354
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_windows_386.go200
-rw-r--r--vendor/modernc.org/libc/sys/stat/stat_windows_amd64.go171
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go2
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go2
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_386.go2
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_amd64.go2
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_arm.go2
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_arm64.go2
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_linux_s390x.go2
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_netbsd_amd64.go5
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_windows_386.go2
-rw-r--r--vendor/modernc.org/libc/sys/types/capi_windows_amd64.go2
-rw-r--r--vendor/modernc.org/libc/sys/types/types_darwin_amd64.go6
-rw-r--r--vendor/modernc.org/libc/sys/types/types_darwin_arm64.go6
-rw-r--r--vendor/modernc.org/libc/sys/types/types_freebsd_amd64.go10
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_386.go590
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_amd64.go592
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_arm.go660
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_arm64.go651
-rw-r--r--vendor/modernc.org/libc/sys/types/types_linux_s390x.go593
-rw-r--r--vendor/modernc.org/libc/sys/types/types_netbsd_amd64.go1364
-rw-r--r--vendor/modernc.org/libc/sys/types/types_windows_386.go60
-rw-r--r--vendor/modernc.org/libc/sys/types/types_windows_amd64.go21
59 files changed, 10824 insertions, 3195 deletions
diff --git a/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go b/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go
index f8510adab..b0f3be1d3 100644
--- a/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go
+++ b/vendor/modernc.org/libc/sys/socket/capi_darwin_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_darwin_amd64.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_darwin_amd64.go -pkgname socket', DO NOT EDIT.
package socket
diff --git a/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go
index 1bc994d59..ba45cfeba 100644
--- a/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go
+++ b/vendor/modernc.org/libc/sys/socket/capi_darwin_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_darwin_arm64.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_darwin_arm64.go -pkgname socket', DO NOT EDIT.
package socket
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_386.go b/vendor/modernc.org/libc/sys/socket/capi_linux_386.go
index 0bf21fb3e..0911eab54 100644
--- a/vendor/modernc.org/libc/sys/socket/capi_linux_386.go
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_386.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_386.go -pkgname socket', DO NOT EDIT.
package socket
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_amd64.go b/vendor/modernc.org/libc/sys/socket/capi_linux_amd64.go
index 54a802f10..57ceee427 100644
--- a/vendor/modernc.org/libc/sys/socket/capi_linux_amd64.go
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_amd64.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_amd64.go -pkgname socket', DO NOT EDIT.
package socket
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_arm.go b/vendor/modernc.org/libc/sys/socket/capi_linux_arm.go
index ce1a6de64..34259749f 100644
--- a/vendor/modernc.org/libc/sys/socket/capi_linux_arm.go
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_arm.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_arm.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_arm.go -pkgname socket', DO NOT EDIT.
package socket
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_arm64.go b/vendor/modernc.org/libc/sys/socket/capi_linux_arm64.go
index 171b288da..0464f8881 100644
--- a/vendor/modernc.org/libc/sys/socket/capi_linux_arm64.go
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_arm64.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_arm64.go -pkgname socket', DO NOT EDIT.
package socket
diff --git a/vendor/modernc.org/libc/sys/socket/capi_linux_s390x.go b/vendor/modernc.org/libc/sys/socket/capi_linux_s390x.go
index a5f4520e2..5f53ef432 100644
--- a/vendor/modernc.org/libc/sys/socket/capi_linux_s390x.go
+++ b/vendor/modernc.org/libc/sys/socket/capi_linux_s390x.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_s390x.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_s390x.go -pkgname socket', DO NOT EDIT.
package socket
diff --git a/vendor/modernc.org/libc/sys/socket/capi_netbsd_amd64.go b/vendor/modernc.org/libc/sys/socket/capi_netbsd_amd64.go
new file mode 100644
index 000000000..d640c0640
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_netbsd_amd64.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go b/vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go
index 0be1d54d0..9bb040859 100644
--- a/vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go
+++ b/vendor/modernc.org/libc/sys/socket/socket_darwin_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_darwin_amd64.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_darwin_amd64.go -pkgname socket', DO NOT EDIT.
package socket
@@ -1009,8 +1009,8 @@ type X__darwin_ct_rune_t = int32 /* _types.h:70:33 */ // ct_rune_t
// mbstate_t is an opaque object to keep conversion state, during multibyte
// stream conversions. The content must not be referenced by user programs.
type X__mbstate_t = struct {
- _ [0]uint64
- F__mbstate8 [128]int8
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
} /* _types.h:79:3 */
type X__darwin_mbstate_t = X__mbstate_t /* _types.h:81:33 */ // mbstate_t
@@ -4905,13 +4905,13 @@ type Sae_connid_t = X__uint32_t /* socket.h:293:20 */
// sockaddr endpoints
type Sa_endpoints = struct {
Fsae_srcif uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fsae_srcaddr uintptr
Fsae_srcaddrlen Socklen_t
- _ [4]byte
+ F__ccgo_pad2 [4]byte
Fsae_dstaddr uintptr
Fsae_dstaddrlen Socklen_t
- _ [4]byte
+ F__ccgo_pad3 [4]byte
} /* socket.h:303:9 */
// connectx() flag parameters
@@ -4985,10 +4985,10 @@ type Sockaddr_storage = struct {
type Msghdr = struct {
Fmsg_name uintptr
Fmsg_namelen Socklen_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fmsg_iov uintptr
Fmsg_iovlen int32
- _ [4]byte
+ F__ccgo_pad2 [4]byte
Fmsg_control uintptr
Fmsg_controllen Socklen_t
Fmsg_flags int32
@@ -5020,12 +5020,12 @@ type Cmsghdr = struct {
// sendfile(2) header/trailer struct
type Sf_hdtr = struct {
- Fheaders uintptr
- Fhdr_cnt int32
- _ [4]byte
- Ftrailers uintptr
- Ftrl_cnt int32
- _ [4]byte
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
} /* socket.h:678:1 */
var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go b/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go
index 99576d57a..295cd3673 100644
--- a/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go
+++ b/vendor/modernc.org/libc/sys/socket/socket_darwin_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_darwin_arm64.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_darwin_arm64.go -pkgname socket', DO NOT EDIT.
package socket
@@ -3980,7 +3980,7 @@ type Errno_t = int32 /* _errno_t.h:30:32 */
// Evaluate to nothing for compilers that don't support availability.
// Swift compiler version
-// Allows for project-agnostic “epochs” for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
// Example:
//
// #if __swift_compiler_version_at_least(800, 2, 20)
@@ -4282,7 +4282,7 @@ type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
// Evaluate to nothing for compilers that don't support availability.
// Swift compiler version
-// Allows for project-agnostic “epochs” for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
// Example:
//
// #if __swift_compiler_version_at_least(800, 2, 20)
@@ -5663,13 +5663,13 @@ type Sae_connid_t = X__uint32_t /* socket.h:293:20 */
// sockaddr endpoints
type Sa_endpoints = struct {
Fsae_srcif uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fsae_srcaddr uintptr
Fsae_srcaddrlen Socklen_t
- _ [4]byte
+ F__ccgo_pad2 [4]byte
Fsae_dstaddr uintptr
Fsae_dstaddrlen Socklen_t
- _ [4]byte
+ F__ccgo_pad3 [4]byte
} /* socket.h:303:9 */
// connectx() flag parameters
@@ -5743,10 +5743,10 @@ type Sockaddr_storage = struct {
type Msghdr = struct {
Fmsg_name uintptr
Fmsg_namelen Socklen_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fmsg_iov uintptr
Fmsg_iovlen int32
- _ [4]byte
+ F__ccgo_pad2 [4]byte
Fmsg_control uintptr
Fmsg_controllen Socklen_t
Fmsg_flags int32
@@ -5778,12 +5778,12 @@ type Cmsghdr = struct {
// sendfile(2) header/trailer struct
type Sf_hdtr = struct {
- Fheaders uintptr
- Fhdr_cnt int32
- _ [4]byte
- Ftrailers uintptr
- Ftrl_cnt int32
- _ [4]byte
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
} /* socket.h:687:1 */
var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/socket_freebsd_amd64.go b/vendor/modernc.org/libc/sys/socket/socket_freebsd_amd64.go
index d5a87e179..5085f727d 100644
--- a/vendor/modernc.org/libc/sys/socket/socket_freebsd_amd64.go
+++ b/vendor/modernc.org/libc/sys/socket/socket_freebsd_amd64.go
@@ -823,8 +823,8 @@ type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number
// mbstate_t is an opaque object to keep conversion state during multibyte
// stream conversions.
type X__mbstate_t = struct {
- _ [0]uint64
- F__mbstate8 [128]int8
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
} /* _types.h:124:3 */
type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
@@ -1020,10 +1020,10 @@ type Sockaddr_storage = struct {
type Msghdr = struct {
Fmsg_name uintptr
Fmsg_namelen Socklen_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fmsg_iov uintptr
Fmsg_iovlen int32
- _ [4]byte
+ F__ccgo_pad2 [4]byte
Fmsg_control uintptr
Fmsg_controllen Socklen_t
Fmsg_flags int32
@@ -1059,7 +1059,7 @@ type Cmsgcred = struct {
Fcmcred_euid Uid_t
Fcmcred_gid Gid_t
Fcmcred_ngroups int16
- _ [2]byte
+ F__ccgo_pad1 [2]byte
Fcmcred_groups [16]Gid_t
} /* socket.h:503:1 */
@@ -1114,13 +1114,13 @@ type Osockaddr = struct {
type Omsghdr = struct {
Fmsg_name uintptr
Fmsg_namelen int32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fmsg_iov uintptr
Fmsg_iovlen int32
- _ [4]byte
+ F__ccgo_pad2 [4]byte
Fmsg_accrights uintptr
Fmsg_accrightslen int32
- _ [4]byte
+ F__ccgo_pad3 [4]byte
} /* socket.h:615:1 */
// howto arguments for shutdown(2), specified by Posix.1g.
@@ -1130,12 +1130,12 @@ type Omsghdr = struct {
// sendfile(2) header/trailer struct
type Sf_hdtr = struct {
- Fheaders uintptr
- Fhdr_cnt int32
- _ [4]byte
- Ftrailers uintptr
- Ftrl_cnt int32
- _ [4]byte
+ Fheaders uintptr
+ Fhdr_cnt int32
+ F__ccgo_pad1 [4]byte
+ Ftrailers uintptr
+ Ftrl_cnt int32
+ F__ccgo_pad2 [4]byte
} /* socket.h:644:1 */
// Sendfile-specific flag(s)
@@ -1145,10 +1145,10 @@ type Mmsghdr = struct {
Fmsg_hdr struct {
Fmsg_name uintptr
Fmsg_namelen Socklen_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fmsg_iov uintptr
Fmsg_iovlen int32
- _ [4]byte
+ F__ccgo_pad2 [4]byte
Fmsg_control uintptr
Fmsg_controllen Socklen_t
Fmsg_flags int32
diff --git a/vendor/modernc.org/libc/sys/socket/socket_linux_386.go b/vendor/modernc.org/libc/sys/socket/socket_linux_386.go
index 34ef0f062..999c4683e 100644
--- a/vendor/modernc.org/libc/sys/socket/socket_linux_386.go
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_386.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_386.go -pkgname socket', DO NOT EDIT.
package socket
@@ -40,7 +40,7 @@ const (
AF_KEY = 15
AF_LLC = 26
AF_LOCAL = 1
- AF_MAX = 44
+ AF_MAX = 45
AF_MPLS = 28
AF_NETBEUI = 13
AF_NETLINK = 16
@@ -63,6 +63,7 @@ const (
AF_VSOCK = 40
AF_WANPIPE = 25
AF_X25 = 9
+ AF_XDP = 44
BIG_ENDIAN = 4321
BYTE_ORDER = 1234
FD_SETSIZE = 1024
@@ -95,7 +96,7 @@ const (
PF_KEY = 15
PF_LLC = 26
PF_LOCAL = 1
- PF_MAX = 44
+ PF_MAX = 45
PF_MPLS = 28
PF_NETBEUI = 13
PF_NETLINK = 16
@@ -118,11 +119,9 @@ const (
PF_VSOCK = 40
PF_WANPIPE = 25
PF_X25 = 9
- SCM_TIMESTAMP = 29
- SCM_TIMESTAMPING = 37
+ PF_XDP = 44
SCM_TIMESTAMPING_OPT_STATS = 54
SCM_TIMESTAMPING_PKTINFO = 58
- SCM_TIMESTAMPNS = 35
SCM_TXTIME = 61
SCM_WIFI_STATUS = 41
SIOCATMARK = 0x8905
@@ -154,13 +153,15 @@ const (
SOL_TIPC = 271
SOL_TLS = 282
SOL_X25 = 262
- SOMAXCONN = 128
+ SOL_XDP = 283
+ SOMAXCONN = 4096
SO_ACCEPTCONN = 30
SO_ATTACH_BPF = 50
SO_ATTACH_FILTER = 26
SO_ATTACH_REUSEPORT_CBPF = 51
SO_ATTACH_REUSEPORT_EBPF = 52
SO_BINDTODEVICE = 25
+ SO_BINDTOIFINDEX = 62
SO_BPF_EXTENSIONS = 48
SO_BROADCAST = 6
SO_BSDCOMPAT = 14
@@ -170,6 +171,7 @@ const (
SO_DEBUG = 1
SO_DETACH_BPF = 27
SO_DETACH_FILTER = 27
+ SO_DETACH_REUSEPORT_BPF = 68
SO_DOMAIN = 39
SO_DONTROUTE = 5
SO_ERROR = 4
@@ -197,7 +199,8 @@ const (
SO_RCVBUF = 8
SO_RCVBUFFORCE = 33
SO_RCVLOWAT = 18
- SO_RCVTIMEO = 20
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
SO_REUSEADDR = 2
SO_REUSEPORT = 15
SO_RXQ_OVFL = 40
@@ -208,20 +211,28 @@ const (
SO_SNDBUF = 7
SO_SNDBUFFORCE = 32
SO_SNDLOWAT = 19
- SO_SNDTIMEO = 21
- SO_TIMESTAMP = 29
- SO_TIMESTAMPING = 37
- SO_TIMESTAMPNS = 35
+ SO_SNDTIMEO_NEW = 67
+ SO_SNDTIMEO_OLD = 21
+ SO_TIMESTAMPING_NEW = 65
+ SO_TIMESTAMPING_OLD = 37
+ SO_TIMESTAMPNS_NEW = 64
+ SO_TIMESTAMPNS_OLD = 35
+ SO_TIMESTAMP_NEW = 63
+ SO_TIMESTAMP_OLD = 29
SO_TXTIME = 61
SO_TYPE = 3
SO_WIFI_STATUS = 41
SO_ZEROCOPY = 60
+ X_ASM_X86_POSIX_TYPES_32_H = 0
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_SOCKADDR_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -232,8 +243,11 @@ const (
X_FEATURES_H = 1
X_FILE_OFFSET_BITS = 64
X_GCC_SIZE_T = 0
+ X_ILP32 = 1
+ X_LINUX_POSIX_TYPES_H = 0
X_POSIX_C_SOURCE = 200809
X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
X_SIZET_ = 0
X_SIZE_T = 0
X_SIZE_T_ = 0
@@ -248,6 +262,7 @@ const (
X_SYS_SIZE_T_H = 0
X_SYS_SOCKET_H = 1
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -257,7 +272,7 @@ const (
)
// Bits in the FLAGS argument to `send', `recv', et al.
-const ( /* socket.h:197:1: */
+const ( /* socket.h:200:1: */
MSG_OOB = 1 // Process out-of-band data.
MSG_PEEK = 2 // Peek at incoming messages.
MSG_DONTROUTE = 4 // Don't use local routing.
@@ -284,13 +299,13 @@ const ( /* socket.h:197:1: */
// Socket level message types. This must match the definitions in
// <linux/socket.h>.
-const ( /* socket.h:329:1: */
+const ( /* socket.h:332:1: */
SCM_RIGHTS = 1
)
// Get the architecture-dependent definition of enum __socket_type.
// Define enum __socket_type for generic Linux.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -305,7 +320,7 @@ const ( /* socket.h:329:1: */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Types of sockets.
const ( /* socket_type.h:24:1: */
@@ -355,11 +370,6 @@ type X__float128 = float64 /* <builtin>:47:21 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Structure for scatter/gather I/O.
@@ -368,7 +378,7 @@ type Iovec = struct {
Fiov_len Size_t
} /* struct_iovec.h:26:1 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -400,15 +410,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -443,18 +444,13 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// This operating system-specific header file defines the SOCK_*, PF_*,
// 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -469,9 +465,9 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -503,15 +499,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -546,14 +533,9 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -568,11 +550,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -587,10 +569,10 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -605,11 +587,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -624,43 +606,63 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
+// Bit size of the time_t type at glibc build time, x86-64 and x32 case.
+// Copyright (C) 2018-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/>.
+
+// For others, time size is word size.
+
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint32 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint32 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:46:44 */
-type X__uint64_t = uint64 /* types.h:47:46 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+type X__int64_t = int64 /* types.h:47:44 */
+type X__uint64_t = uint64 /* types.h:48:46 */
// Smallest types with at least a given width.
-type X__int_least8_t = X__int8_t /* types.h:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:65:37 */
-type X__u_quad_t = uint64 /* types.h:66:46 */
+type X__quad_t = int64 /* types.h:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:74:37 */
-type X__uintmax_t = uint64 /* types.h:75:46 */
+type X__intmax_t = int64 /* types.h:75:37 */
+type X__uintmax_t = uint64 /* types.h:76:46 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -672,7 +674,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -694,7 +696,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// We want __extension__ before typedef's that use nonstandard base types
// such as `long long' in C89 mode.
// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
-// Copyright (C) 2012-2018 Free Software Foundation, Inc.
+// Copyright (C) 2012-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
@@ -709,7 +711,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
//
// 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/>.
+// <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.
@@ -718,76 +720,103 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = X__u_quad_t /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint32 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = X__u_quad_t /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint32 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int32 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = X__quad_t /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int32 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint32 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = X__u_quad_t /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int32 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int32 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// Define a 64-bit time type alongsize the 32-bit one.
+
+type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers.
+type X__ino64_t = X__uint64_t /* 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 = uint32 /* types.h:151:27 */ // Type of file link counts.
+type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets.
+type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
+type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch.
+type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
+type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds.
+
+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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int32 /* types.h:172:29 */
+type X__blksize_t = int32 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int32 /* types.h:177:28 */
-type X__blkcnt64_t = X__quad_t /* types.h:178:30 */
+type X__blkcnt_t = int32 /* types.h:179:28 */
+type X__blkcnt64_t = X__int64_t /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint32 /* types.h:181:30 */
-type X__fsblkcnt64_t = X__u_quad_t /* types.h:182:32 */
+type X__fsblkcnt_t = uint32 /* types.h:183:30 */
+type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint32 /* types.h:185:30 */
-type X__fsfilcnt64_t = X__u_quad_t /* types.h:186:32 */
+type X__fsfilcnt_t = uint32 /* types.h:187:30 */
+type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int32 /* types.h:189:28 */
+type X__fsword_t = int32 /* types.h:191:28 */
-type X__ssize_t = int32 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int32 /* types.h:194:33 */
+type X__syscall_slong_t = int32 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint32 /* types.h:196:33 */
+type X__syscall_ulong_t = uint32 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int32 /* types.h:204:25 */
+type X__intptr_t = int32 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 X__time64_t = X__int64_t /* types.h:222:28 */
type U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -824,7 +853,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -839,7 +868,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -847,7 +876,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -862,7 +891,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -870,7 +899,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -885,7 +914,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -893,7 +922,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -908,14 +937,14 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// 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 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -947,15 +976,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -990,11 +1010,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -1005,7 +1020,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1020,10 +1035,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1038,7 +1053,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1047,18 +1062,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
+// 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 = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
-
-type Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -1073,11 +1087,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -1092,11 +1106,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1111,12 +1125,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -1131,7 +1145,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
@@ -1145,7 +1159,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-2018 Free Software Foundation, Inc.
+// 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
@@ -1160,7 +1174,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1174,7 +1188,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1189,16 +1203,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1218,16 +1250,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1242,11 +1274,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1261,7 +1293,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1276,36 +1308,6 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
-//
// The additional macro defines any constraint for the lock alignment
// inside the thread structures:
//
@@ -1314,11 +1316,40 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
+
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
+// 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.
//
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// Now add the thread types.
+// Declaration of common pthread types for all architectures.
+// Copyright (C) 2017-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
@@ -1333,39 +1364,109 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
-// Determine the wordsize from the preprocessor defines.
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
-// Definitions for internal mutex struct.
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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.
-type X__pthread_rwlock_arch_t = struct {
- F__readers uint32
- F__writers uint32
- F__wrphase_futex uint32
- F__writers_futex uint32
- F__pad3 uint32
- F__pad4 uint32
- F__flags uint8
- F__shared uint8
- F__rwelision int8
- F__pad2 uint8
- F__cur_writer int32
-} /* pthreadtypes-arch.h:65:1 */
+// 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.
// Extra attributes for the cleanup functions.
// Common definition of pthread_mutex_t.
-type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:88:9 */
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
-// Extra attributes for the cleanup functions.
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
-// Common definition of pthread_mutex_t.
+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:91:3 */
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+// It should initialize the mutex internal flag.
-// Lock elision support.
+// x86 internal mutex struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
type X__pthread_mutex_s = struct {
F__lock int32
@@ -1374,13 +1475,57 @@ type X__pthread_mutex_s = struct {
F__kind int32
F__nusers uint32
F__20 struct {
- _ [0]uint32
+ F__ccgo_pad1 [0]uint32
F__elision_data struct {
F__espins int16
F__eelision int16
}
}
-} /* thread-shared-types.h:118:1 */
+} /* struct_mutex.h:22:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 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.
+//
+// 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/>.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__rwelision int8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:23:1 */
// Common definition of pthread_cond_t.
@@ -1392,7 +1537,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1401,15 +1546,15 @@ type Pthread_t = uint32 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1419,8 +1564,8 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint32
- F__size [36]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
@@ -1434,8 +1579,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1444,13 +1589,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint32
- F__size [20]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:118:3 */
// Type for length arguments in socket calls.
@@ -1469,7 +1614,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1995-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
@@ -1484,7 +1629,7 @@ type Socklen_t = X__socklen_t /* socket.h:33:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/socket.h> instead.
@@ -1501,7 +1646,7 @@ type Sa_family_t = uint16 /* sockaddr.h:28:28 */
type Sockaddr = struct {
Fsa_family Sa_family_t
Fsa_data [14]int8
-} /* socket.h:175:1 */
+} /* socket.h:178:1 */
// Structure large enough to hold any socket address (with the historical
// exception of AF_UNIX).
@@ -1510,7 +1655,7 @@ type Sockaddr_storage = struct {
Fss_family Sa_family_t
F__ss_padding [122]int8
F__ss_align uint32
-} /* socket.h:188:1 */
+} /* socket.h:191:1 */
// Structure describing messages sent by
// `sendmsg' and received by `recvmsg'.
@@ -1522,21 +1667,115 @@ type Msghdr = struct {
Fmsg_control uintptr
Fmsg_controllen Size_t
Fmsg_flags int32
-} /* socket.h:254:1 */
+} /* socket.h:257:1 */
// Structure used for storage of ancillary data object information.
type Cmsghdr = struct {
- _ [0]uint32
- Fcmsg_len Size_t
- Fcmsg_level int32
- Fcmsg_type int32
-} /* socket.h:272:1 */
+ F__ccgo_pad1 [0]uint32
+ Fcmsg_len Size_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:275:1 */
-// Ugly workaround for unclean kernel headers.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
-// Get socket manipulation related informations from kernel headers.
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+// 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
+// one limit that doesn't have to be changed [again].
+//
+// Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in
+// <sys/time.h> (and thus <linux/time.h>) - but this is a more logical
+// place for them. Solved by having dummy defines in <sys/time.h>.
+
+// This macro may have been defined in <gnu/types.h>. But we always
+// use the one here.
+
+type X__kernel_fd_set = struct{ Ffds_bits [32]uint32 } /* posix_types.h:27:3 */
+
+// Type of a signal handler.
+type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */
+
+// Type of a SYSV IPC key.
+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_mode_t = uint16 /* posix_types_32.h:11:24 */
+
+type X__kernel_ipc_pid_t = uint16 /* posix_types_32.h:14:24 */
+
+type X__kernel_uid_t = uint16 /* posix_types_32.h:17:24 */
+type X__kernel_gid_t = uint16 /* posix_types_32.h:18:24 */
+
+type X__kernel_old_dev_t = uint16 /* posix_types_32.h:21:24 */
+
+// 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.
+
+// This file is generally used by user-level software, so you need to
+// be a little careful about namespace pollution etc.
+//
+// First the types that are often defined in different ways across
+// architectures, so that you can override them.
+
+type X__kernel_long_t = int32 /* posix_types.h:15:15 */
+type X__kernel_ulong_t = uint32 /* posix_types.h:16:23 */
+
+type X__kernel_ino_t = X__kernel_ulong_t /* posix_types.h:20:26 */
+
+type X__kernel_pid_t = int32 /* posix_types.h:28:14 */
+
+type X__kernel_suseconds_t = X__kernel_long_t /* 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 = X__kernel_uid_t /* posix_types.h:54:24 */
+type X__kernel_old_gid_t = X__kernel_gid_t /* posix_types.h:55:24 */
+
+// Most 32 bit architectures use "unsigned int" size_t,
+// and all 64 bit architectures use "unsigned long" size_t.
+type X__kernel_size_t = uint32 /* posix_types.h:68:22 */
+type X__kernel_ssize_t = int32 /* posix_types.h:69:14 */
+type X__kernel_ptrdiff_t = int32 /* posix_types.h:70:14 */
+
+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 */
+
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
// Socket-level I/O control calls.
@@ -1553,7 +1792,7 @@ type Cmsghdr = struct {
type Linger = struct {
Fl_onoff int32
Fl_linger int32
-} /* socket.h:444:1 */
+} /* socket.h:361:1 */
// This is the 4.3 BSD `struct sockaddr' format, which is used as wire
// format in the grotty old 4.3 `talk' protocol.
diff --git a/vendor/modernc.org/libc/sys/socket/socket_linux_amd64.go b/vendor/modernc.org/libc/sys/socket/socket_linux_amd64.go
index 42a0fc5a7..eef52f844 100644
--- a/vendor/modernc.org/libc/sys/socket/socket_linux_amd64.go
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_amd64.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_amd64.go -pkgname socket', DO NOT EDIT.
package socket
@@ -40,7 +40,7 @@ const (
AF_KEY = 15
AF_LLC = 26
AF_LOCAL = 1
- AF_MAX = 44
+ AF_MAX = 45
AF_MPLS = 28
AF_NETBEUI = 13
AF_NETLINK = 16
@@ -63,6 +63,7 @@ const (
AF_VSOCK = 40
AF_WANPIPE = 25
AF_X25 = 9
+ AF_XDP = 44
BIG_ENDIAN = 4321
BYTE_ORDER = 1234
FD_SETSIZE = 1024
@@ -95,7 +96,7 @@ const (
PF_KEY = 15
PF_LLC = 26
PF_LOCAL = 1
- PF_MAX = 44
+ PF_MAX = 45
PF_MPLS = 28
PF_NETBEUI = 13
PF_NETLINK = 16
@@ -118,6 +119,7 @@ const (
PF_VSOCK = 40
PF_WANPIPE = 25
PF_X25 = 9
+ PF_XDP = 44
SCM_TIMESTAMP = 29
SCM_TIMESTAMPING = 37
SCM_TIMESTAMPING_OPT_STATS = 54
@@ -154,13 +156,15 @@ const (
SOL_TIPC = 271
SOL_TLS = 282
SOL_X25 = 262
- SOMAXCONN = 128
+ SOL_XDP = 283
+ SOMAXCONN = 4096
SO_ACCEPTCONN = 30
SO_ATTACH_BPF = 50
SO_ATTACH_FILTER = 26
SO_ATTACH_REUSEPORT_CBPF = 51
SO_ATTACH_REUSEPORT_EBPF = 52
SO_BINDTODEVICE = 25
+ SO_BINDTOIFINDEX = 62
SO_BPF_EXTENSIONS = 48
SO_BROADCAST = 6
SO_BSDCOMPAT = 14
@@ -170,6 +174,7 @@ const (
SO_DEBUG = 1
SO_DETACH_BPF = 27
SO_DETACH_FILTER = 27
+ SO_DETACH_REUSEPORT_BPF = 68
SO_DOMAIN = 39
SO_DONTROUTE = 5
SO_ERROR = 4
@@ -198,6 +203,8 @@ const (
SO_RCVBUFFORCE = 33
SO_RCVLOWAT = 18
SO_RCVTIMEO = 20
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
SO_REUSEADDR = 2
SO_REUSEPORT = 15
SO_RXQ_OVFL = 40
@@ -209,19 +216,31 @@ const (
SO_SNDBUFFORCE = 32
SO_SNDLOWAT = 19
SO_SNDTIMEO = 21
+ SO_SNDTIMEO_NEW = 67
+ SO_SNDTIMEO_OLD = 21
SO_TIMESTAMP = 29
SO_TIMESTAMPING = 37
+ SO_TIMESTAMPING_NEW = 65
+ SO_TIMESTAMPING_OLD = 37
SO_TIMESTAMPNS = 35
+ SO_TIMESTAMPNS_NEW = 64
+ SO_TIMESTAMPNS_OLD = 35
+ SO_TIMESTAMP_NEW = 63
+ SO_TIMESTAMP_OLD = 29
SO_TXTIME = 61
SO_TYPE = 3
SO_WIFI_STATUS = 41
SO_ZEROCOPY = 60
+ X_ASM_X86_POSIX_TYPES_64_H = 0
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_SOCKADDR_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -232,9 +251,11 @@ const (
X_FEATURES_H = 1
X_FILE_OFFSET_BITS = 64
X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
X_LP64 = 1
X_POSIX_C_SOURCE = 200809
X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
X_SIZET_ = 0
X_SIZE_T = 0
X_SIZE_T_ = 0
@@ -249,6 +270,7 @@ const (
X_SYS_SIZE_T_H = 0
X_SYS_SOCKET_H = 1
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -257,7 +279,7 @@ const (
)
// Bits in the FLAGS argument to `send', `recv', et al.
-const ( /* socket.h:197:1: */
+const ( /* socket.h:200:1: */
MSG_OOB = 1 // Process out-of-band data.
MSG_PEEK = 2 // Peek at incoming messages.
MSG_DONTROUTE = 4 // Don't use local routing.
@@ -284,13 +306,13 @@ const ( /* socket.h:197:1: */
// Socket level message types. This must match the definitions in
// <linux/socket.h>.
-const ( /* socket.h:329:1: */
+const ( /* socket.h:332:1: */
SCM_RIGHTS = 1
)
// Get the architecture-dependent definition of enum __socket_type.
// Define enum __socket_type for generic Linux.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -305,7 +327,7 @@ const ( /* socket.h:329:1: */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Types of sockets.
const ( /* socket_type.h:24:1: */
@@ -364,11 +386,6 @@ type X__float128 = float64 /* <builtin>:47:21 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Structure for scatter/gather I/O.
@@ -377,7 +394,7 @@ type Iovec = struct {
Fiov_len Size_t
} /* struct_iovec.h:26:1 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -409,15 +426,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -452,18 +460,13 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// This operating system-specific header file defines the SOCK_*, PF_*,
// 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -478,9 +481,9 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -512,15 +515,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -555,14 +549,9 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -577,11 +566,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -596,10 +585,10 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -614,11 +603,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -633,45 +622,64 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
// 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.
+// 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/>.
+
+// For others, time size is word size.
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint64 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint64 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:43:25 */
-type X__uint64_t = uint64 /* types.h:44:27 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+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:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:62:18 */
-type X__u_quad_t = uint64 /* types.h:63:27 */
+type X__quad_t = int64 /* types.h:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:71:18 */
-type X__uintmax_t = uint64 /* types.h:72:27 */
+type X__intmax_t = int64 /* types.h:72:18 */
+type X__uintmax_t = uint64 /* types.h:73:27 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -683,7 +691,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -704,7 +712,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// No need to mark the typedef with __extension__.
// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
-// Copyright (C) 2012-2018 Free Software Foundation, Inc.
+// Copyright (C) 2012-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
@@ -719,7 +727,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
//
// 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/>.
+// <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.
@@ -734,78 +742,106 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// And for __rlim_t and __rlim64_t.
+// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
+
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint64 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// If we already have 64-bit time type then use it.
+
+type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+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__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.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+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__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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int64 /* types.h:172:29 */
+type X__blksize_t = int64 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int64 /* types.h:177:28 */
-type X__blkcnt64_t = int64 /* types.h:178:30 */
+type X__blkcnt_t = int64 /* types.h:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint64 /* types.h:181:30 */
-type X__fsblkcnt64_t = uint64 /* types.h:182:32 */
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint64 /* types.h:185:30 */
-type X__fsfilcnt64_t = uint64 /* types.h:186:32 */
+type X__fsfilcnt_t = uint64 /* types.h:187:30 */
+type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int64 /* types.h:189:28 */
+type X__fsword_t = int64 /* types.h:191:28 */
-type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int64 /* types.h:194:33 */
+type X__syscall_slong_t = int64 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint64 /* types.h:196:33 */
+type X__syscall_ulong_t = uint64 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int64 /* types.h:204:25 */
+type X__intptr_t = int64 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -842,7 +878,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -857,7 +893,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -865,7 +901,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -880,7 +916,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -888,7 +924,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -903,7 +939,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -911,7 +947,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -926,14 +962,14 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// 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 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -965,15 +1001,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -1008,11 +1035,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -1023,7 +1045,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1038,10 +1060,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1056,7 +1078,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1065,18 +1087,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
-
-type U_int8_t = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
+// 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 Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -1091,11 +1112,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -1110,11 +1131,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1129,12 +1150,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -1149,7 +1170,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
@@ -1165,7 +1186,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-2018 Free Software Foundation, Inc.
+// 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
@@ -1180,7 +1201,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1194,7 +1215,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1209,16 +1230,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1238,16 +1277,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1262,11 +1301,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1281,7 +1320,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1296,36 +1335,6 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
-//
// The additional macro defines any constraint for the lock alignment
// inside the thread structures:
//
@@ -1334,11 +1343,8 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
-//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
-//
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+
+// 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
@@ -1353,42 +1359,141 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
// Both x86-64 and x32 use the 64-bit system call interface.
-// Definitions for internal mutex struct.
-
-type X__pthread_rwlock_arch_t = struct {
- F__readers uint32
- F__writers uint32
- F__wrphase_futex uint32
- F__writers_futex uint32
- F__pad3 uint32
- F__pad4 uint32
- F__cur_writer int32
- F__shared int32
- F__rwelision int8
- F__pad1 [7]uint8
- F__pad2 uint64
- F__flags uint32
- _ [4]byte
-} /* pthreadtypes-arch.h:65:1 */
-
// Common definition of pthread_mutex_t.
type X__pthread_internal_list = struct {
F__prev uintptr
F__next uintptr
-} /* thread-shared-types.h:82:9 */
+} /* thread-shared-types.h:49:9 */
+
+// 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.
+// 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/>.
+
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
+
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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.
+
+// 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.
+
+// Both x86-64 and x32 use the 64-bit system call interface.
// Common definition of pthread_mutex_t.
-type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:86:3 */
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
-// Lock elision support.
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
+
+type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
+
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 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.
+// 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/>.
type X__pthread_mutex_s = struct {
F__lock int32
@@ -1399,7 +1504,53 @@ type X__pthread_mutex_s = struct {
F__spins int16
F__elision int16
F__list X__pthread_list_t
-} /* thread-shared-types.h:118:1 */
+} /* struct_mutex.h:22:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 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.
+//
+// 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/>.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ 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 */
// Common definition of pthread_cond_t.
@@ -1411,7 +1562,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1420,15 +1571,15 @@ type Pthread_t = uint64 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1438,8 +1589,8 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint64
- F__size [56]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
@@ -1453,8 +1604,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint64
- F__size [8]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1463,13 +1614,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint64
- F__size [32]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:118:3 */
// Type for length arguments in socket calls.
@@ -1488,7 +1639,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1995-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
@@ -1503,7 +1654,7 @@ type Socklen_t = X__socklen_t /* socket.h:33:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/socket.h> instead.
@@ -1520,7 +1671,7 @@ type Sa_family_t = uint16 /* sockaddr.h:28:28 */
type Sockaddr = struct {
Fsa_family Sa_family_t
Fsa_data [14]int8
-} /* socket.h:175:1 */
+} /* socket.h:178:1 */
// Structure large enough to hold any socket address (with the historical
// exception of AF_UNIX).
@@ -1529,37 +1680,131 @@ type Sockaddr_storage = struct {
Fss_family Sa_family_t
F__ss_padding [118]int8
F__ss_align uint64
-} /* socket.h:188:1 */
+} /* socket.h:191:1 */
// Structure describing messages sent by
// `sendmsg' and received by `recvmsg'.
type Msghdr = struct {
Fmsg_name uintptr
Fmsg_namelen Socklen_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fmsg_iov uintptr
Fmsg_iovlen Size_t
Fmsg_control uintptr
Fmsg_controllen Size_t
Fmsg_flags int32
- _ [4]byte
-} /* socket.h:254:1 */
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
// Structure used for storage of ancillary data object information.
type Cmsghdr = struct {
- _ [0]uint64
- Fcmsg_len Size_t
- Fcmsg_level int32
- Fcmsg_type int32
-} /* socket.h:272:1 */
+ F__ccgo_pad1 [0]uint64
+ Fcmsg_len Size_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:275:1 */
-// Ugly workaround for unclean kernel headers.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
-// Get socket manipulation related informations from kernel headers.
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+// 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
+// one limit that doesn't have to be changed [again].
+//
+// Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in
+// <sys/time.h> (and thus <linux/time.h>) - but this is a more logical
+// place for them. Solved by having dummy defines in <sys/time.h>.
+
+// This macro may have been defined in <gnu/types.h>. But we always
+// use the one here.
+
+type X__kernel_fd_set = struct{ Ffds_bits [16]uint64 } /* posix_types.h:27:3 */
+
+// Type of a signal handler.
+type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */
+
+// Type of a SYSV IPC key.
+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.
+
+// This file is generally used by user-level software, so you need to
+// be a little careful about namespace pollution etc.
+//
+// First the types that are often defined in different ways across
+// architectures, so that you can override them.
+
+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_mode_t = uint32 /* posix_types.h:24:22 */
+
+type X__kernel_pid_t = int32 /* posix_types.h:28:14 */
+
+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_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 */
+
+// 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_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 */
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
// Socket-level I/O control calls.
// For setsockopt(2)
@@ -1570,11 +1815,13 @@ type Cmsghdr = struct {
// Instruct lower device to use last 4-bytes of skb data as FCS
+// on 64-bit and x32, avoid the ?: operator
+
// Structure used to manipulate the SO_LINGER option.
type Linger = struct {
Fl_onoff int32
Fl_linger int32
-} /* socket.h:444:1 */
+} /* socket.h:361:1 */
// This is the 4.3 BSD `struct sockaddr' format, which is used as wire
// format in the grotty old 4.3 `talk' protocol.
diff --git a/vendor/modernc.org/libc/sys/socket/socket_linux_arm.go b/vendor/modernc.org/libc/sys/socket/socket_linux_arm.go
index 2c9413e62..97233cfca 100644
--- a/vendor/modernc.org/libc/sys/socket/socket_linux_arm.go
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_arm.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_arm.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_arm.go -pkgname socket', DO NOT EDIT.
package socket
@@ -40,7 +40,7 @@ const (
AF_KEY = 15
AF_LLC = 26
AF_LOCAL = 1
- AF_MAX = 44
+ AF_MAX = 45
AF_MPLS = 28
AF_NETBEUI = 13
AF_NETLINK = 16
@@ -63,6 +63,7 @@ const (
AF_VSOCK = 40
AF_WANPIPE = 25
AF_X25 = 9
+ AF_XDP = 44
BIG_ENDIAN = 4321
BYTE_ORDER = 1234
FD_SETSIZE = 1024
@@ -95,7 +96,7 @@ const (
PF_KEY = 15
PF_LLC = 26
PF_LOCAL = 1
- PF_MAX = 44
+ PF_MAX = 45
PF_MPLS = 28
PF_NETBEUI = 13
PF_NETLINK = 16
@@ -118,11 +119,9 @@ const (
PF_VSOCK = 40
PF_WANPIPE = 25
PF_X25 = 9
- SCM_TIMESTAMP = 29
- SCM_TIMESTAMPING = 37
+ PF_XDP = 44
SCM_TIMESTAMPING_OPT_STATS = 54
SCM_TIMESTAMPING_PKTINFO = 58
- SCM_TIMESTAMPNS = 35
SCM_TXTIME = 61
SCM_WIFI_STATUS = 41
SIOCATMARK = 0x8905
@@ -154,13 +153,15 @@ const (
SOL_TIPC = 271
SOL_TLS = 282
SOL_X25 = 262
- SOMAXCONN = 128
+ SOL_XDP = 283
+ SOMAXCONN = 4096
SO_ACCEPTCONN = 30
SO_ATTACH_BPF = 50
SO_ATTACH_FILTER = 26
SO_ATTACH_REUSEPORT_CBPF = 51
SO_ATTACH_REUSEPORT_EBPF = 52
SO_BINDTODEVICE = 25
+ SO_BINDTOIFINDEX = 62
SO_BPF_EXTENSIONS = 48
SO_BROADCAST = 6
SO_BSDCOMPAT = 14
@@ -170,6 +171,7 @@ const (
SO_DEBUG = 1
SO_DETACH_BPF = 27
SO_DETACH_FILTER = 27
+ SO_DETACH_REUSEPORT_BPF = 68
SO_DOMAIN = 39
SO_DONTROUTE = 5
SO_ERROR = 4
@@ -197,7 +199,8 @@ const (
SO_RCVBUF = 8
SO_RCVBUFFORCE = 33
SO_RCVLOWAT = 18
- SO_RCVTIMEO = 20
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
SO_REUSEADDR = 2
SO_REUSEPORT = 15
SO_RXQ_OVFL = 40
@@ -208,20 +211,27 @@ const (
SO_SNDBUF = 7
SO_SNDBUFFORCE = 32
SO_SNDLOWAT = 19
- SO_SNDTIMEO = 21
- SO_TIMESTAMP = 29
- SO_TIMESTAMPING = 37
- SO_TIMESTAMPNS = 35
+ SO_SNDTIMEO_NEW = 67
+ SO_SNDTIMEO_OLD = 21
+ SO_TIMESTAMPING_NEW = 65
+ SO_TIMESTAMPING_OLD = 37
+ SO_TIMESTAMPNS_NEW = 64
+ SO_TIMESTAMPNS_OLD = 35
+ SO_TIMESTAMP_NEW = 63
+ SO_TIMESTAMP_OLD = 29
SO_TXTIME = 61
SO_TYPE = 3
SO_WIFI_STATUS = 41
SO_ZEROCOPY = 60
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_SOCKADDR_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -232,6 +242,7 @@ const (
X_FEATURES_H = 1
X_FILE_OFFSET_BITS = 64
X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
X_POSIX_C_SOURCE = 200809
X_POSIX_SOURCE = 1
X_SIZET_ = 0
@@ -248,6 +259,7 @@ const (
X_SYS_SIZE_T_H = 0
X_SYS_SOCKET_H = 1
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -256,7 +268,7 @@ const (
)
// Bits in the FLAGS argument to `send', `recv', et al.
-const ( /* socket.h:197:1: */
+const ( /* socket.h:200:1: */
MSG_OOB = 1 // Process out-of-band data.
MSG_PEEK = 2 // Peek at incoming messages.
MSG_DONTROUTE = 4 // Don't use local routing.
@@ -283,13 +295,13 @@ const ( /* socket.h:197:1: */
// Socket level message types. This must match the definitions in
// <linux/socket.h>.
-const ( /* socket.h:329:1: */
+const ( /* socket.h:332:1: */
SCM_RIGHTS = 1
)
// Get the architecture-dependent definition of enum __socket_type.
// Define enum __socket_type for generic Linux.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -304,7 +316,7 @@ const ( /* socket.h:329:1: */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Types of sockets.
const ( /* socket_type.h:24:1: */
@@ -354,11 +366,6 @@ type X__float128 = float64 /* <builtin>:47:21 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Structure for scatter/gather I/O.
@@ -367,7 +374,7 @@ type Iovec = struct {
Fiov_len Size_t
} /* struct_iovec.h:26:1 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -399,15 +406,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -442,18 +440,13 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// This operating system-specific header file defines the SOCK_*, PF_*,
// 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -468,9 +461,9 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -502,15 +495,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -545,14 +529,9 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -567,11 +546,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -586,10 +565,10 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -604,11 +583,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -623,9 +602,9 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1999-2018 Free Software Foundation, Inc.
+// Copyright (C) 1999-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
@@ -640,41 +619,78 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
+
+// Bit size of the time_t type at glibc build time, general case.
+// Copyright (C) 2018-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/>.
+
+// Copyright (C) 1999-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/>.
+
+// Size in bits of the 'time_t' type of the default ABI.
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint32 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint32 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:46:44 */
-type X__uint64_t = uint64 /* types.h:47:46 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+type X__int64_t = int64 /* types.h:47:44 */
+type X__uint64_t = uint64 /* types.h:48:46 */
// Smallest types with at least a given width.
-type X__int_least8_t = X__int8_t /* types.h:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:65:37 */
-type X__u_quad_t = uint64 /* types.h:66:46 */
+type X__quad_t = int64 /* types.h:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:74:37 */
-type X__uintmax_t = uint64 /* types.h:75:46 */
+type X__intmax_t = int64 /* types.h:75:37 */
+type X__uintmax_t = uint64 /* types.h:76:46 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -686,7 +702,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -708,7 +724,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// We want __extension__ before typedef's that use nonstandard base types
// such as `long long' in C89 mode.
// bits/typesizes.h -- underlying types for *_t. Generic version.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -723,83 +739,110 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
//
// 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/>.
+// <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.
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = X__u_quad_t /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint32 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = X__u_quad_t /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint32 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int32 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = X__quad_t /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int32 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint32 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = X__u_quad_t /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int32 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int32 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// Define a 64-bit time type alongsize the 32-bit one.
+
+type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers.
+type X__ino64_t = X__uint64_t /* 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 = uint32 /* types.h:151:27 */ // Type of file link counts.
+type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets.
+type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
+type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch.
+type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
+type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds.
+
+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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int32 /* types.h:172:29 */
+type X__blksize_t = int32 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int32 /* types.h:177:28 */
-type X__blkcnt64_t = X__quad_t /* types.h:178:30 */
+type X__blkcnt_t = int32 /* types.h:179:28 */
+type X__blkcnt64_t = X__int64_t /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint32 /* types.h:181:30 */
-type X__fsblkcnt64_t = X__u_quad_t /* types.h:182:32 */
+type X__fsblkcnt_t = uint32 /* types.h:183:30 */
+type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint32 /* types.h:185:30 */
-type X__fsfilcnt64_t = X__u_quad_t /* types.h:186:32 */
+type X__fsfilcnt_t = uint32 /* types.h:187:30 */
+type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int32 /* types.h:189:28 */
+type X__fsword_t = int32 /* types.h:191:28 */
-type X__ssize_t = int32 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int32 /* types.h:194:33 */
+type X__syscall_slong_t = int32 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint32 /* types.h:196:33 */
+type X__syscall_ulong_t = uint32 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int32 /* types.h:204:25 */
+type X__intptr_t = int32 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 X__time64_t = X__int64_t /* types.h:222:28 */
type U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -836,7 +879,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -851,7 +894,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -859,7 +902,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -874,7 +917,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -882,7 +925,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -897,7 +940,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -905,7 +948,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -920,14 +963,14 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// 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 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -959,15 +1002,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -1002,11 +1036,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -1017,7 +1046,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1032,10 +1061,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1050,7 +1079,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1059,18 +1088,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
-
-type U_int8_t = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
+// 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 Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -1085,11 +1113,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -1104,11 +1132,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1123,12 +1151,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -1143,7 +1171,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We don't use `memset' because this would require a prototype and
// the array isn't too big.
@@ -1158,7 +1186,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-2018 Free Software Foundation, Inc.
+// 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
@@ -1173,7 +1201,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1187,7 +1215,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1202,16 +1230,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1231,16 +1277,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1255,11 +1301,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1274,7 +1320,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1289,35 +1335,110 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
+// 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.
+
+// Machine-specific pthread type layouts. Generic version.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
+
+// Copyright (C) 1999-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/>.
+
+// 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.
+
+// Now add the thread types.
+// Declaration of common pthread types for all architectures.
+// Copyright (C) 2017-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/>.
+
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
+
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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:
@@ -1327,11 +1448,110 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
+
+// Machine-specific pthread type layouts. Generic version.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
+
+// Copyright (C) 1999-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/>.
+
+// Common definition of pthread_mutex_t.
+
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
+
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
+
+type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
+
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+// It should initialize the mutex internal flag.
+
+// Default mutex implementation struct definitions.
+// Copyright (C) 2019-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.
//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
+// 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.
//
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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/>.
+
+// 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__kind int32
+ F__nusers uint32
+ F__20 struct{ F__spins int32 }
+} /* 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
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
+// It should initialize the rwlock internal type.
+
+// Default read-write lock implementation struct definitions.
+// Copyright (C) 2019-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
@@ -1345,10 +1565,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// 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
// <http://www.gnu.org/licenses/>.
-// Copyright (C) 1992-2018 Free Software Foundation, Inc.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
@@ -1365,7 +1586,10 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// License along with the GNU C Library; if not, see
// <http://www.gnu.org/licenses/>.
-// Data structure for mutex handling.
+// 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
@@ -1379,27 +1603,7 @@ type X__pthread_rwlock_arch_t = struct {
F__pad1 uint8
F__pad2 uint8
F__cur_writer int32
-} /* pthreadtypes-arch.h:43:1 */
-
-// Common definition of pthread_mutex_t.
-
-type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:88:9 */
-
-// Common definition of pthread_mutex_t.
-
-type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:91:3 */
-
-// Lock elision support.
-// Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.
-
-type X__pthread_mutex_s = struct {
- F__lock int32
- F__count uint32
- F__owner int32
- F__kind int32
- F__nusers uint32
- F__20 struct{ F__spins int32 }
-} /* thread-shared-types.h:118:1 */
+} /* struct_rwlock.h:29:1 */
// Common definition of pthread_cond_t.
@@ -1411,7 +1615,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1420,15 +1624,15 @@ type Pthread_t = uint32 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1438,8 +1642,8 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint32
- F__size [36]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [36]uint8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
@@ -1453,8 +1657,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1463,13 +1667,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint32
- F__size [20]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:118:3 */
// Type for length arguments in socket calls.
@@ -1488,7 +1692,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1995-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
@@ -1503,7 +1707,7 @@ type Socklen_t = X__socklen_t /* socket.h:33:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/socket.h> instead.
@@ -1519,17 +1723,17 @@ type Sa_family_t = uint16 /* sockaddr.h:28:28 */
// Structure describing a generic socket address.
type Sockaddr = struct {
Fsa_family Sa_family_t
- Fsa_data [14]int8
-} /* socket.h:175:1 */
+ Fsa_data [14]uint8
+} /* socket.h:178: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
- F__ss_padding [122]int8
+ F__ss_padding [122]uint8
F__ss_align uint32
-} /* socket.h:188:1 */
+} /* socket.h:191:1 */
// Structure describing messages sent by
// `sendmsg' and received by `recvmsg'.
@@ -1541,21 +1745,122 @@ type Msghdr = struct {
Fmsg_control uintptr
Fmsg_controllen Size_t
Fmsg_flags int32
-} /* socket.h:254:1 */
+} /* socket.h:257:1 */
// Structure used for storage of ancillary data object information.
type Cmsghdr = struct {
- _ [0]uint32
- Fcmsg_len Size_t
- Fcmsg_level int32
- Fcmsg_type int32
-} /* socket.h:272:1 */
+ F__ccgo_pad1 [0]uint32
+ Fcmsg_len Size_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:275:1 */
+
+// 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
+
+// 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
+// one limit that doesn't have to be changed [again].
+//
+// Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in
+// <sys/time.h> (and thus <linux/time.h>) - but this is a more logical
+// place for them. Solved by having dummy defines in <sys/time.h>.
+
+// This macro may have been defined in <gnu/types.h>. But we always
+// use the one here.
+
+type X__kernel_fd_set = struct{ Ffds_bits [32]uint32 } /* posix_types.h:27:3 */
+
+// Type of a signal handler.
+type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */
+
+// Type of a SYSV IPC key.
+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
+// arch/arm/include/asm/posix_types.h
+//
+// Copyright (C) 1996-1998 Russell King.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2 as
+// published by the Free Software Foundation.
+//
+// Changelog:
+// 27-06-1996 RMK Created
-// Ugly workaround for unclean kernel headers.
+// 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_mode_t = uint16 /* posix_types.h:23:25 */
+
+type X__kernel_ipc_pid_t = uint16 /* posix_types.h:26:25 */
+
+type X__kernel_uid_t = uint16 /* posix_types.h:29:25 */
+type X__kernel_gid_t = uint16 /* posix_types.h:30:25 */
+
+type X__kernel_old_dev_t = uint16 /* posix_types.h:33:25 */
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
-// Get socket manipulation related informations from kernel headers.
// 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.
+
+// This file is generally used by user-level software, so you need to
+// be a little careful about namespace pollution etc.
+//
+// First the types that are often defined in different ways across
+// architectures, so that you can override them.
+
+type X__kernel_long_t = int32 /* posix_types.h:15:15 */
+type X__kernel_ulong_t = uint32 /* posix_types.h:16:23 */
+
+type X__kernel_ino_t = X__kernel_ulong_t /* posix_types.h:20:26 */
+
+type X__kernel_pid_t = int32 /* posix_types.h:28:14 */
+
+type X__kernel_suseconds_t = X__kernel_long_t /* 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 = X__kernel_uid_t /* posix_types.h:54:24 */
+type X__kernel_old_gid_t = X__kernel_gid_t /* posix_types.h:55:24 */
+
+// Most 32 bit architectures use "unsigned int" size_t,
+// and all 64 bit architectures use "unsigned long" size_t.
+type X__kernel_size_t = uint32 /* posix_types.h:68:22 */
+type X__kernel_ssize_t = int32 /* posix_types.h:69:14 */
+type X__kernel_ptrdiff_t = int32 /* posix_types.h:70:14 */
+
+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 */
+
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
// Socket-level I/O control calls.
@@ -1572,7 +1877,7 @@ type Cmsghdr = struct {
type Linger = struct {
Fl_onoff int32
Fl_linger int32
-} /* socket.h:444:1 */
+} /* socket.h:361:1 */
// This is the 4.3 BSD `struct sockaddr' format, which is used as wire
// format in the grotty old 4.3 `talk' protocol.
@@ -1583,4 +1888,4 @@ type Osockaddr = struct {
// Define some macros helping to catch buffer overflows.
-var _ int8 /* gen.c:2:13: */
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/socket_linux_arm64.go b/vendor/modernc.org/libc/sys/socket/socket_linux_arm64.go
index 073e862da..b9f96dbfe 100644
--- a/vendor/modernc.org/libc/sys/socket/socket_linux_arm64.go
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_arm64.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_arm64.go -pkgname socket', DO NOT EDIT.
package socket
@@ -40,7 +40,7 @@ const (
AF_KEY = 15
AF_LLC = 26
AF_LOCAL = 1
- AF_MAX = 44
+ AF_MAX = 45
AF_MPLS = 28
AF_NETBEUI = 13
AF_NETLINK = 16
@@ -63,6 +63,7 @@ const (
AF_VSOCK = 40
AF_WANPIPE = 25
AF_X25 = 9
+ AF_XDP = 44
BIG_ENDIAN = 4321
BYTE_ORDER = 1234
FD_SETSIZE = 1024
@@ -95,7 +96,7 @@ const (
PF_KEY = 15
PF_LLC = 26
PF_LOCAL = 1
- PF_MAX = 44
+ PF_MAX = 45
PF_MPLS = 28
PF_NETBEUI = 13
PF_NETLINK = 16
@@ -118,6 +119,7 @@ const (
PF_VSOCK = 40
PF_WANPIPE = 25
PF_X25 = 9
+ PF_XDP = 44
SCM_TIMESTAMP = 29
SCM_TIMESTAMPING = 37
SCM_TIMESTAMPING_OPT_STATS = 54
@@ -154,13 +156,15 @@ const (
SOL_TIPC = 271
SOL_TLS = 282
SOL_X25 = 262
- SOMAXCONN = 128
+ SOL_XDP = 283
+ SOMAXCONN = 4096
SO_ACCEPTCONN = 30
SO_ATTACH_BPF = 50
SO_ATTACH_FILTER = 26
SO_ATTACH_REUSEPORT_CBPF = 51
SO_ATTACH_REUSEPORT_EBPF = 52
SO_BINDTODEVICE = 25
+ SO_BINDTOIFINDEX = 62
SO_BPF_EXTENSIONS = 48
SO_BROADCAST = 6
SO_BSDCOMPAT = 14
@@ -170,6 +174,7 @@ const (
SO_DEBUG = 1
SO_DETACH_BPF = 27
SO_DETACH_FILTER = 27
+ SO_DETACH_REUSEPORT_BPF = 68
SO_DOMAIN = 39
SO_DONTROUTE = 5
SO_ERROR = 4
@@ -198,6 +203,8 @@ const (
SO_RCVBUFFORCE = 33
SO_RCVLOWAT = 18
SO_RCVTIMEO = 20
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
SO_REUSEADDR = 2
SO_REUSEPORT = 15
SO_RXQ_OVFL = 40
@@ -209,19 +216,30 @@ const (
SO_SNDBUFFORCE = 32
SO_SNDLOWAT = 19
SO_SNDTIMEO = 21
+ SO_SNDTIMEO_NEW = 67
+ SO_SNDTIMEO_OLD = 21
SO_TIMESTAMP = 29
SO_TIMESTAMPING = 37
+ SO_TIMESTAMPING_NEW = 65
+ SO_TIMESTAMPING_OLD = 37
SO_TIMESTAMPNS = 35
+ SO_TIMESTAMPNS_NEW = 64
+ SO_TIMESTAMPNS_OLD = 35
+ SO_TIMESTAMP_NEW = 63
+ SO_TIMESTAMP_OLD = 29
SO_TXTIME = 61
SO_TYPE = 3
SO_WIFI_STATUS = 41
SO_ZEROCOPY = 60
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_SOCKADDR_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -232,9 +250,11 @@ const (
X_FEATURES_H = 1
X_FILE_OFFSET_BITS = 64
X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
X_LP64 = 1
X_POSIX_C_SOURCE = 200809
X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
X_SIZET_ = 0
X_SIZE_T = 0
X_SIZE_T_ = 0
@@ -249,6 +269,7 @@ const (
X_SYS_SIZE_T_H = 0
X_SYS_SOCKET_H = 1
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -257,7 +278,7 @@ const (
)
// Bits in the FLAGS argument to `send', `recv', et al.
-const ( /* socket.h:197:1: */
+const ( /* socket.h:200:1: */
MSG_OOB = 1 // Process out-of-band data.
MSG_PEEK = 2 // Peek at incoming messages.
MSG_DONTROUTE = 4 // Don't use local routing.
@@ -284,13 +305,13 @@ const ( /* socket.h:197:1: */
// Socket level message types. This must match the definitions in
// <linux/socket.h>.
-const ( /* socket.h:329:1: */
+const ( /* socket.h:332:1: */
SCM_RIGHTS = 1
)
// Get the architecture-dependent definition of enum __socket_type.
// Define enum __socket_type for generic Linux.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -305,7 +326,7 @@ const ( /* socket.h:329:1: */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Types of sockets.
const ( /* socket_type.h:24:1: */
@@ -364,11 +385,6 @@ type X__float128 = float64 /* <builtin>:47:21 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Structure for scatter/gather I/O.
@@ -377,7 +393,7 @@ type Iovec = struct {
Fiov_len Size_t
} /* struct_iovec.h:26:1 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -409,15 +425,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -452,18 +459,13 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// This operating system-specific header file defines the SOCK_*, PF_*,
// 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -478,9 +480,9 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -512,15 +514,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -555,14 +548,9 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -577,11 +565,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -596,10 +584,10 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -614,11 +602,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -633,11 +621,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
//
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -652,41 +640,80 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
+
+// Bit size of the time_t type at glibc build time, general case.
+// Copyright (C) 2018-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.
+//
+// Copyright (C) 2016-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/>.
+
+// Size in bits of the 'time_t' type of the default ABI.
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint64 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint64 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:43:25 */
-type X__uint64_t = uint64 /* types.h:44:27 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+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:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:62:18 */
-type X__u_quad_t = uint64 /* types.h:63:27 */
+type X__quad_t = int64 /* types.h:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:71:18 */
-type X__uintmax_t = uint64 /* types.h:72:27 */
+type X__intmax_t = int64 /* types.h:72:18 */
+type X__uintmax_t = uint64 /* types.h:73:27 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -698,7 +725,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -719,7 +746,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// No need to mark the typedef with __extension__.
// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
-// Copyright (C) 2011-2018 Free Software Foundation, Inc.
+// Copyright (C) 2011-2020 Free Software Foundation, Inc.
// This file is part of the GNU C Library.
// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
//
@@ -735,7 +762,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
//
// 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/>.
+// <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.
@@ -748,78 +775,105 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// And for __rlim_t and __rlim64_t.
+// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint32 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// If we already have 64-bit time type then use it.
+
+type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+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 = 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.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+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__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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int32 /* types.h:172:29 */
+type X__blksize_t = int32 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int64 /* types.h:177:28 */
-type X__blkcnt64_t = int64 /* types.h:178:30 */
+type X__blkcnt_t = int64 /* types.h:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint64 /* types.h:181:30 */
-type X__fsblkcnt64_t = uint64 /* types.h:182:32 */
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint64 /* types.h:185:30 */
-type X__fsfilcnt64_t = uint64 /* types.h:186:32 */
+type X__fsfilcnt_t = uint64 /* types.h:187:30 */
+type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int64 /* types.h:189:28 */
+type X__fsword_t = int64 /* types.h:191:28 */
-type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int64 /* types.h:194:33 */
+type X__syscall_slong_t = int64 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint64 /* types.h:196:33 */
+type X__syscall_ulong_t = uint64 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int64 /* types.h:204:25 */
+type X__intptr_t = int64 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -856,7 +910,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -871,7 +925,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -879,7 +933,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -894,7 +948,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -902,7 +956,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -917,7 +971,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -925,7 +979,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -940,14 +994,14 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// 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 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -979,15 +1033,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -1022,11 +1067,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -1037,7 +1077,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1052,10 +1092,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1070,7 +1110,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1079,18 +1119,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
+// 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 = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
-
-type Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -1105,11 +1144,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -1124,11 +1163,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1143,12 +1182,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -1163,7 +1202,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We don't use `memset' because this would require a prototype and
// the array isn't too big.
@@ -1178,7 +1217,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-2018 Free Software Foundation, Inc.
+// 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
@@ -1193,7 +1232,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1207,7 +1246,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1222,16 +1261,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1251,16 +1308,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1275,11 +1332,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1294,7 +1351,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1309,36 +1366,6 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
-//
// The additional macro defines any constraint for the lock alignment
// inside the thread structures:
//
@@ -1347,11 +1374,8 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
-//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
-//
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
//
// This file is part of the GNU C Library.
//
@@ -1367,9 +1391,10 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1992-2018 Free Software Foundation, Inc.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
@@ -1386,36 +1411,155 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// License along with the GNU C Library; if not, see
// <http://www.gnu.org/licenses/>.
-// Definitions for internal mutex struct.
-
-type X__pthread_rwlock_arch_t = struct {
- F__readers uint32
- F__writers uint32
- F__wrphase_futex uint32
- F__writers_futex uint32
- F__pad3 uint32
- F__pad4 uint32
- F__cur_writer int32
- F__shared int32
- F__pad1 uint64
- F__pad2 uint64
- F__flags uint32
- _ [4]byte
-} /* pthreadtypes-arch.h:54:1 */
-
// Common definition of pthread_mutex_t.
type X__pthread_internal_list = struct {
F__prev uintptr
F__next uintptr
-} /* thread-shared-types.h:82:9 */
+} /* thread-shared-types.h:49:9 */
+
+// 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.
+// 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/>.
+
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
+
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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.
+
+// 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/>.
+
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
// Common definition of pthread_mutex_t.
-type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:86:3 */
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
+
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
+
+type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
+
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+// It should initialize the mutex internal flag.
+
+// Default mutex implementation struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
-// Lock elision support.
-// Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.
+// 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
@@ -1425,7 +1569,52 @@ type X__pthread_mutex_s = struct {
F__kind int32
F__spins int32
F__list X__pthread_list_t
-} /* thread-shared-types.h:118:1 */
+} /* 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
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
+// It should initialize the rwlock internal type.
+
+// AArch64 internal rwlock struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__cur_writer int32
+ F__shared int32
+ F__pad1 uint64
+ F__pad2 uint64
+ F__flags uint32
+ F__ccgo_pad1 [4]byte
+} /* struct_rwlock.h:23:1 */
// Common definition of pthread_cond_t.
@@ -1437,7 +1626,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1446,15 +1635,15 @@ type Pthread_t = uint64 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1464,15 +1653,15 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint64
- F__size [64]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [64]uint8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
type Pthread_mutex_t = struct {
- F__data X__pthread_mutex_s
- _ [8]byte
+ F__data X__pthread_mutex_s
+ F__ccgo_pad1 [8]byte
} /* pthreadtypes.h:72:3 */
type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
@@ -1482,8 +1671,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint64
- F__size [8]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1492,13 +1681,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint64
- F__size [32]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
} /* pthreadtypes.h:118:3 */
// Type for length arguments in socket calls.
@@ -1517,7 +1706,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1995-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
@@ -1532,7 +1721,7 @@ type Socklen_t = X__socklen_t /* socket.h:33:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/socket.h> instead.
@@ -1548,47 +1737,149 @@ type Sa_family_t = uint16 /* sockaddr.h:28:28 */
// Structure describing a generic socket address.
type Sockaddr = struct {
Fsa_family Sa_family_t
- Fsa_data [14]int8
-} /* socket.h:175:1 */
+ Fsa_data [14]uint8
+} /* socket.h:178: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
- F__ss_padding [118]int8
+ F__ss_padding [118]uint8
F__ss_align uint64
-} /* socket.h:188:1 */
+} /* socket.h:191:1 */
// Structure describing messages sent by
// `sendmsg' and received by `recvmsg'.
type Msghdr = struct {
Fmsg_name uintptr
Fmsg_namelen Socklen_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fmsg_iov uintptr
Fmsg_iovlen Size_t
Fmsg_control uintptr
Fmsg_controllen Size_t
Fmsg_flags int32
- _ [4]byte
-} /* socket.h:254:1 */
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
// Structure used for storage of ancillary data object information.
type Cmsghdr = struct {
- _ [0]uint64
- Fcmsg_len Size_t
- Fcmsg_level int32
- Fcmsg_type int32
-} /* socket.h:272:1 */
+ F__ccgo_pad1 [0]uint64
+ Fcmsg_len Size_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:275:1 */
-// Ugly workaround for unclean kernel headers.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
-// Get socket manipulation related informations from kernel headers.
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+// 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
+// one limit that doesn't have to be changed [again].
+//
+// Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in
+// <sys/time.h> (and thus <linux/time.h>) - but this is a more logical
+// place for them. Solved by having dummy defines in <sys/time.h>.
+
+// This macro may have been defined in <gnu/types.h>. But we always
+// use the one here.
+
+type X__kernel_fd_set = struct{ Ffds_bits [16]uint64 } /* posix_types.h:27:3 */
+
+// Type of a signal handler.
+type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */
+
+// Type of a SYSV IPC key.
+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
+
+type X__kernel_old_uid_t = uint16 /* posix_types.h:5:24 */
+type X__kernel_old_gid_t = uint16 /* posix_types.h:6:24 */
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+// Copyright (C) 2012 ARM Ltd.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2 as
+// published by the Free Software Foundation.
+//
+// This program 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 General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+// 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.
+
+// This file is generally used by user-level software, so you need to
+// be a little careful about namespace pollution etc.
+//
+// First the types that are often defined in different ways across
+// architectures, so that you can override them.
+
+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_mode_t = uint32 /* posix_types.h:24:22 */
+
+type X__kernel_pid_t = int32 /* posix_types.h:28:14 */
+
+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_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_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_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 */
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
// Socket-level I/O control calls.
// For setsockopt(2)
@@ -1599,11 +1890,13 @@ type Cmsghdr = struct {
// Instruct lower device to use last 4-bytes of skb data as FCS
+// on 64-bit and x32, avoid the ?: operator
+
// Structure used to manipulate the SO_LINGER option.
type Linger = struct {
Fl_onoff int32
Fl_linger int32
-} /* socket.h:444:1 */
+} /* socket.h:361:1 */
// This is the 4.3 BSD `struct sockaddr' format, which is used as wire
// format in the grotty old 4.3 `talk' protocol.
@@ -1614,4 +1907,4 @@ type Osockaddr = struct {
// Define some macros helping to catch buffer overflows.
-var _ int8 /* gen.c:2:13: */
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/socket_linux_s390x.go b/vendor/modernc.org/libc/sys/socket/socket_linux_s390x.go
index 7ef697378..42056c4d2 100644
--- a/vendor/modernc.org/libc/sys/socket/socket_linux_s390x.go
+++ b/vendor/modernc.org/libc/sys/socket/socket_linux_s390x.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_s390x.go -pkgname socket', DO NOT EDIT.
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_s390x.go -pkgname socket', DO NOT EDIT.
package socket
@@ -40,7 +40,7 @@ const (
AF_KEY = 15
AF_LLC = 26
AF_LOCAL = 1
- AF_MAX = 44
+ AF_MAX = 45
AF_MPLS = 28
AF_NETBEUI = 13
AF_NETLINK = 16
@@ -63,6 +63,7 @@ const (
AF_VSOCK = 40
AF_WANPIPE = 25
AF_X25 = 9
+ AF_XDP = 44
BIG_ENDIAN = 4321
BYTE_ORDER = 4321
FD_SETSIZE = 1024
@@ -95,7 +96,7 @@ const (
PF_KEY = 15
PF_LLC = 26
PF_LOCAL = 1
- PF_MAX = 44
+ PF_MAX = 45
PF_MPLS = 28
PF_NETBEUI = 13
PF_NETLINK = 16
@@ -118,6 +119,7 @@ const (
PF_VSOCK = 40
PF_WANPIPE = 25
PF_X25 = 9
+ PF_XDP = 44
SCM_TIMESTAMP = 29
SCM_TIMESTAMPING = 37
SCM_TIMESTAMPING_OPT_STATS = 54
@@ -154,13 +156,15 @@ const (
SOL_TIPC = 271
SOL_TLS = 282
SOL_X25 = 262
- SOMAXCONN = 128
+ SOL_XDP = 283
+ SOMAXCONN = 4096
SO_ACCEPTCONN = 30
SO_ATTACH_BPF = 50
SO_ATTACH_FILTER = 26
SO_ATTACH_REUSEPORT_CBPF = 51
SO_ATTACH_REUSEPORT_EBPF = 52
SO_BINDTODEVICE = 25
+ SO_BINDTOIFINDEX = 62
SO_BPF_EXTENSIONS = 48
SO_BROADCAST = 6
SO_BSDCOMPAT = 14
@@ -170,6 +174,7 @@ const (
SO_DEBUG = 1
SO_DETACH_BPF = 27
SO_DETACH_FILTER = 27
+ SO_DETACH_REUSEPORT_BPF = 68
SO_DOMAIN = 39
SO_DONTROUTE = 5
SO_ERROR = 4
@@ -198,6 +203,8 @@ const (
SO_RCVBUFFORCE = 33
SO_RCVLOWAT = 18
SO_RCVTIMEO = 20
+ SO_RCVTIMEO_NEW = 66
+ SO_RCVTIMEO_OLD = 20
SO_REUSEADDR = 2
SO_REUSEPORT = 15
SO_RXQ_OVFL = 40
@@ -209,20 +216,30 @@ const (
SO_SNDBUFFORCE = 32
SO_SNDLOWAT = 19
SO_SNDTIMEO = 21
+ SO_SNDTIMEO_NEW = 67
+ SO_SNDTIMEO_OLD = 21
SO_TIMESTAMP = 29
SO_TIMESTAMPING = 37
+ SO_TIMESTAMPING_NEW = 65
+ SO_TIMESTAMPING_OLD = 37
SO_TIMESTAMPNS = 35
+ SO_TIMESTAMPNS_NEW = 64
+ SO_TIMESTAMPNS_OLD = 35
+ SO_TIMESTAMP_NEW = 63
+ SO_TIMESTAMP_OLD = 29
SO_TXTIME = 61
SO_TYPE = 3
SO_WIFI_STATUS = 41
SO_ZEROCOPY = 60
- X_ASM_SOCKET_H = 0
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_SOCKADDR_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -233,9 +250,11 @@ const (
X_FEATURES_H = 1
X_FILE_OFFSET_BITS = 64
X_GCC_SIZE_T = 0
+ X_LINUX_POSIX_TYPES_H = 0
X_LP64 = 1
X_POSIX_C_SOURCE = 200809
X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
X_SIZET_ = 0
X_SIZE_T = 0
X_SIZE_T_ = 0
@@ -250,6 +269,7 @@ const (
X_SYS_SIZE_T_H = 0
X_SYS_SOCKET_H = 1
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -258,7 +278,7 @@ const (
)
// Bits in the FLAGS argument to `send', `recv', et al.
-const ( /* socket.h:197:1: */
+const ( /* socket.h:200:1: */
MSG_OOB = 1 // Process out-of-band data.
MSG_PEEK = 2 // Peek at incoming messages.
MSG_DONTROUTE = 4 // Don't use local routing.
@@ -285,13 +305,13 @@ const ( /* socket.h:197:1: */
// Socket level message types. This must match the definitions in
// <linux/socket.h>.
-const ( /* socket.h:329:1: */
+const ( /* socket.h:332:1: */
SCM_RIGHTS = 1
)
// Get the architecture-dependent definition of enum __socket_type.
// Define enum __socket_type for generic Linux.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -306,7 +326,7 @@ const ( /* socket.h:329:1: */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Types of sockets.
const ( /* socket_type.h:24:1: */
@@ -365,11 +385,6 @@ type X__float128 = float64 /* <builtin>:47:21 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Structure for scatter/gather I/O.
@@ -378,7 +393,7 @@ type Iovec = struct {
Fiov_len Size_t
} /* struct_iovec.h:26:1 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -410,15 +425,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -453,18 +459,13 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// This operating system-specific header file defines the SOCK_*, PF_*,
// 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -479,9 +480,9 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -513,15 +514,6 @@ type Iovec = struct {
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -556,14 +548,9 @@ type Iovec = struct {
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -578,11 +565,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -597,10 +584,10 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -615,11 +602,11 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -634,43 +621,65 @@ type Iovec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
+
+// Determine the wordsize from the preprocessor defines.
+
+// Bit size of the time_t type at glibc build time, general case.
+// Copyright (C) 2018-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.
+// Size in bits of the 'time_t' type of the default ABI.
+
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint64 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint64 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:43:25 */
-type X__uint64_t = uint64 /* types.h:44:27 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+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:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:62:18 */
-type X__u_quad_t = uint64 /* types.h:63:27 */
+type X__quad_t = int64 /* types.h:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:71:18 */
-type X__uintmax_t = uint64 /* types.h:72:27 */
+type X__intmax_t = int64 /* types.h:72:18 */
+type X__uintmax_t = uint64 /* types.h:73:27 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -682,7 +691,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -703,7 +712,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// No need to mark the typedef with __extension__.
// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
-// Copyright (C) 2003-2018 Free Software Foundation, Inc.
+// Copyright (C) 2003-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
@@ -718,7 +727,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
//
// 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/>.
+// <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.
@@ -733,78 +742,106 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// And for __rlim_t and __rlim64_t.
+// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
+
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint64 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// If we already have 64-bit time type then use it.
+
+type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+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__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.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+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__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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int64 /* types.h:172:29 */
+type X__blksize_t = int64 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int64 /* types.h:177:28 */
-type X__blkcnt64_t = int64 /* types.h:178:30 */
+type X__blkcnt_t = int64 /* types.h:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint64 /* types.h:181:30 */
-type X__fsblkcnt64_t = uint64 /* types.h:182:32 */
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint64 /* types.h:185:30 */
-type X__fsfilcnt64_t = uint64 /* types.h:186:32 */
+type X__fsfilcnt_t = uint64 /* types.h:187:30 */
+type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int64 /* types.h:189:28 */
+type X__fsword_t = int64 /* types.h:191:28 */
-type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int64 /* types.h:194:33 */
+type X__syscall_slong_t = int64 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint64 /* types.h:196:33 */
+type X__syscall_ulong_t = uint64 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int64 /* types.h:204:25 */
+type X__intptr_t = int64 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -841,7 +878,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -856,7 +893,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -864,7 +901,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -879,7 +916,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -887,7 +924,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -902,7 +939,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -910,7 +947,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -925,14 +962,14 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// 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 */
-// Copyright (C) 1989-2018 Free Software Foundation, Inc.
+// Copyright (C) 1989-2020 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -964,15 +1001,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// This avoids lossage on SunOS but only if stdtypes.h comes first.
// There's no way to win with the other order! Sun lossage.
-// On 4.3bsd-net2, make sure ansi.h is included, so we have
-// one less case to deal with in the following.
-// On FreeBSD 5, machine/ansi.h does not exist anymore...
-
-// In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-// defined if the corresponding type is *not* defined.
-// FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-// NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_
-
// Sequent's header files use _PTRDIFF_T_ in some conflicting way.
// Just ignore it.
@@ -1007,11 +1035,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -1022,7 +1045,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1037,10 +1060,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1055,7 +1078,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1064,18 +1087,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
+// 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 = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
-
-type Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -1090,11 +1112,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -1109,11 +1131,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1128,12 +1150,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -1148,7 +1170,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We don't use `memset' because this would require a prototype and
// the array isn't too big.
@@ -1163,7 +1185,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-2018 Free Software Foundation, Inc.
+// 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
@@ -1178,7 +1200,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1192,7 +1214,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1207,16 +1229,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1236,16 +1276,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1260,11 +1300,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1279,7 +1319,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1294,36 +1334,6 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
-//
// The additional macro defines any constraint for the lock alignment
// inside the thread structures:
//
@@ -1332,11 +1342,10 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
+
+// Machine-specific pthread type layouts. Generic version.
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
-//
-// Copyright (C) 2003-2018 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
@@ -1355,35 +1364,135 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Determine the wordsize from the preprocessor defines.
-// Definitions for internal mutex struct.
-
-type X__pthread_rwlock_arch_t = struct {
- F__readers uint32
- F__writers uint32
- F__wrphase_futex uint32
- F__writers_futex uint32
- F__pad3 uint32
- F__pad4 uint32
- F__cur_writer int32
- F__shared int32
- F__pad1 uint64
- F__pad2 uint64
- F__flags uint32
- _ [4]byte
-} /* pthreadtypes-arch.h:50:1 */
-
// Common definition of pthread_mutex_t.
type X__pthread_internal_list = struct {
F__prev uintptr
F__next uintptr
-} /* thread-shared-types.h:82:9 */
+} /* thread-shared-types.h:49:9 */
+
+// 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.
+// 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/>.
+
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
+
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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.
+
+// Machine-specific pthread type layouts. Generic version.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
+
+// Determine the wordsize from the preprocessor defines.
// Common definition of pthread_mutex_t.
-type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:86:3 */
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
-// Lock elision support.
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
+
+type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
+
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+// It should initialize the mutex internal flag.
+
+// S390 internal mutex struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
type X__pthread_mutex_s = struct {
F__lock int32
@@ -1394,7 +1503,52 @@ type X__pthread_mutex_s = struct {
F__spins int16
F__elision int16
F__list X__pthread_list_t
-} /* thread-shared-types.h:118:1 */
+} /* struct_mutex.h:22:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
+// It should initialize the rwlock internal type.
+
+// S390 internal rwlock struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__cur_writer int32
+ F__shared int32
+ F__pad1 uint64
+ F__pad2 uint64
+ F__flags uint32
+ F__ccgo_pad1 [4]byte
+} /* struct_rwlock.h:23:1 */
// Common definition of pthread_cond_t.
@@ -1406,7 +1560,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1415,15 +1569,15 @@ type Pthread_t = uint64 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1433,8 +1587,8 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint64
- F__size [56]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [56]uint8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
@@ -1448,8 +1602,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint64
- F__size [8]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1458,13 +1612,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint64
- F__size [32]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:118:3 */
// Type for length arguments in socket calls.
@@ -1483,7 +1637,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1995-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
@@ -1498,7 +1652,7 @@ type Socklen_t = X__socklen_t /* socket.h:33:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/socket.h> instead.
@@ -1514,47 +1668,138 @@ type Sa_family_t = uint16 /* sockaddr.h:28:28 */
// Structure describing a generic socket address.
type Sockaddr = struct {
Fsa_family Sa_family_t
- Fsa_data [14]int8
-} /* socket.h:175:1 */
+ Fsa_data [14]uint8
+} /* socket.h:178: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
- F__ss_padding [118]int8
+ F__ss_padding [118]uint8
F__ss_align uint64
-} /* socket.h:188:1 */
+} /* socket.h:191:1 */
// Structure describing messages sent by
// `sendmsg' and received by `recvmsg'.
type Msghdr = struct {
Fmsg_name uintptr
Fmsg_namelen Socklen_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fmsg_iov uintptr
Fmsg_iovlen Size_t
Fmsg_control uintptr
Fmsg_controllen Size_t
Fmsg_flags int32
- _ [4]byte
-} /* socket.h:254:1 */
+ F__ccgo_pad2 [4]byte
+} /* socket.h:257:1 */
// Structure used for storage of ancillary data object information.
type Cmsghdr = struct {
- _ [0]uint64
- Fcmsg_len Size_t
- Fcmsg_level int32
- Fcmsg_type int32
-} /* socket.h:272:1 */
+ F__ccgo_pad1 [0]uint64
+ Fcmsg_len Size_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:275:1 */
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
-// Ugly workaround for unclean kernel headers.
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+// 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
+// one limit that doesn't have to be changed [again].
+//
+// Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in
+// <sys/time.h> (and thus <linux/time.h>) - but this is a more logical
+// place for them. Solved by having dummy defines in <sys/time.h>.
+
+// This macro may have been defined in <gnu/types.h>. But we always
+// use the one here.
+
+type X__kernel_fd_set = struct{ Ffds_bits [16]uint64 } /* posix_types.h:27:3 */
+
+// Type of a signal handler.
+type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */
+
+// Type of a SYSV IPC key.
+type X__kernel_key_t = int32 /* posix_types.h:33:13 */
+type X__kernel_mqd_t = int32 /* posix_types.h:34:13 */
-// Get socket manipulation related informations from kernel headers.
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
// S390 version
//
-// Derived from "include/asm-i386/socket.h"
+
+// 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_size_t = uint64 /* posix_types.h:16:25 */
+type X__kernel_ssize_t = int64 /* posix_types.h:17:25 */
+
+type X__kernel_old_dev_t = uint16 /* posix_types.h:20:24 */
+
+type X__kernel_ino_t = uint32 /* posix_types.h:35:25 */
+type X__kernel_mode_t = uint32 /* posix_types.h:36:25 */
+type X__kernel_ipc_pid_t = int32 /* posix_types.h:37:25 */
+type X__kernel_uid_t = uint32 /* posix_types.h:38:25 */
+type X__kernel_gid_t = uint32 /* posix_types.h:39:25 */
+type X__kernel_ptrdiff_t = int64 /* posix_types.h:40:25 */
+type X__kernel_sigset_t = uint64 /* posix_types.h:41:25 */ // at least 32 bits
+
+// 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.
+
+// This file is generally used by user-level software, so you need to
+// be a little careful about namespace pollution etc.
+//
+// First the types that are often defined in different ways across
+// architectures, so that you can override them.
+
+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_pid_t = int32 /* posix_types.h:28:14 */
+
+type X__kernel_suseconds_t = X__kernel_long_t /* 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 = X__kernel_uid_t /* posix_types.h:54:24 */
+type X__kernel_old_gid_t = X__kernel_gid_t /* posix_types.h:55:24 */
+
+// Most 32 bit architectures use "unsigned int" size_t,
+// and all 64 bit architectures use "unsigned long" size_t.
+
+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 */
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
@@ -1568,11 +1813,13 @@ type Cmsghdr = struct {
// Instruct lower device to use last 4-bytes of skb data as FCS
+// on 64-bit and x32, avoid the ?: operator
+
// Structure used to manipulate the SO_LINGER option.
type Linger = struct {
Fl_onoff int32
Fl_linger int32
-} /* socket.h:444:1 */
+} /* socket.h:361:1 */
// This is the 4.3 BSD `struct sockaddr' format, which is used as wire
// format in the grotty old 4.3 `talk' protocol.
@@ -1583,4 +1830,4 @@ type Osockaddr = struct {
// Define some macros helping to catch buffer overflows.
-var _ int8 /* gen.c:2:13: */
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/socket/socket_netbsd_amd64.go b/vendor/modernc.org/libc/sys/socket/socket_netbsd_amd64.go
new file mode 100644
index 000000000..15c0a0f41
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/socket/socket_netbsd_amd64.go
@@ -0,0 +1,863 @@
+// Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_netbsd_amd64.go -pkgname socket', DO NOT EDIT.
+
+package socket
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ AF_APPLETALK = 16
+ AF_ARP = 28
+ AF_BLUETOOTH = 31
+ AF_CAN = 35
+ AF_CCITT = 10
+ AF_CHAOS = 5
+ AF_CNT = 21
+ AF_COIP = 20
+ AF_DATAKIT = 9
+ AF_DECnet = 12
+ AF_DLI = 13
+ AF_E164 = 26
+ AF_ECMA = 8
+ AF_ETHER = 36
+ AF_HYLINK = 15
+ AF_IEEE80211 = 32
+ AF_IMPLINK = 3
+ AF_INET = 2
+ AF_INET6 = 24
+ AF_IPX = 23
+ AF_ISDN = 26
+ AF_ISO = 7
+ AF_LAT = 14
+ AF_LINK = 18
+ AF_LOCAL = 1
+ AF_MAX = 37
+ AF_MPLS = 33
+ AF_NATM = 27
+ AF_NS = 6
+ AF_OROUTE = 17
+ AF_OSI = 7
+ AF_PUP = 4
+ AF_ROUTE = 34
+ AF_SNA = 11
+ AF_UNIX = 1
+ AF_UNSPEC = 0
+ MSG_BCAST = 0x0100
+ MSG_CMSG_CLOEXEC = 0x0800
+ MSG_CONTROLMBUF = 0x2000000
+ MSG_CTRUNC = 0x0020
+ MSG_DONTROUTE = 0x0004
+ MSG_DONTWAIT = 0x0080
+ MSG_EOR = 0x0008
+ MSG_IOVUSRSPACE = 0x4000000
+ MSG_LENUSRSPACE = 0x8000000
+ MSG_MCAST = 0x0200
+ MSG_NAMEMBUF = 0x1000000
+ MSG_NBIO = 0x1000
+ MSG_NOSIGNAL = 0x0400
+ MSG_NOTIFICATION = 0x4000
+ MSG_OOB = 0x0001
+ MSG_PEEK = 0x0002
+ MSG_TRUNC = 0x0010
+ MSG_USERFLAGS = 0x0ffffff
+ MSG_WAITALL = 0x0040
+ MSG_WAITFORONE = 0x2000
+ NET_RT_DUMP = 1
+ NET_RT_FLAGS = 2
+ NET_RT_IFLIST = 6
+ NET_RT_OIFLIST = 5
+ NET_RT_OOIFLIST = 4
+ NET_RT_OOOIFLIST = 3
+ PCB_ALL = 0
+ PCB_SLOP = 20
+ PF_APPLETALK = 16
+ PF_ARP = 28
+ PF_BLUETOOTH = 31
+ PF_CAN = 35
+ PF_CCITT = 10
+ PF_CHAOS = 5
+ PF_CNT = 21
+ PF_COIP = 20
+ PF_DATAKIT = 9
+ PF_DECnet = 12
+ PF_DLI = 13
+ PF_E164 = 26
+ PF_ECMA = 8
+ PF_ETHER = 36
+ PF_HYLINK = 15
+ PF_IMPLINK = 3
+ PF_INET = 2
+ PF_INET6 = 24
+ PF_IPX = 23
+ PF_ISDN = 26
+ PF_ISO = 7
+ PF_KEY = 29
+ PF_LAT = 14
+ PF_LINK = 18
+ PF_LOCAL = 1
+ PF_MAX = 37
+ PF_MPLS = 33
+ PF_NATM = 27
+ PF_NS = 6
+ PF_OROUTE = 17
+ PF_OSI = 7
+ PF_PIP = 25
+ PF_PUP = 4
+ PF_ROUTE = 34
+ PF_RTIP = 22
+ PF_SNA = 11
+ PF_UNIX = 1
+ PF_UNSPEC = 0
+ PF_XTP = 19
+ SCM_CREDS = 0x10
+ SCM_RIGHTS = 0x01
+ SCM_TIMESTAMP = 0x08
+ SHUT_RD = 0
+ SHUT_RDWR = 2
+ SHUT_WR = 1
+ SOCK_CLOEXEC = 0x10000000
+ SOCK_CONN_DGRAM = 6
+ SOCK_DCCP = 6
+ SOCK_DGRAM = 2
+ SOCK_FLAGS_MASK = 0xf0000000
+ SOCK_NONBLOCK = 0x20000000
+ SOCK_NOSIGPIPE = 0x40000000
+ SOCK_RAW = 3
+ SOCK_RDM = 4
+ SOCK_SEQPACKET = 5
+ SOCK_STREAM = 1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 128
+ SO_ACCEPTCONN = 0x0002
+ SO_ACCEPTFILTER = 0x1000
+ SO_BROADCAST = 0x0020
+ SO_DEBUG = 0x0001
+ SO_DEFOPTS = 27645
+ SO_DONTROUTE = 0x0010
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x0008
+ SO_LINGER = 0x0080
+ SO_NOHEADER = 0x100a
+ SO_NOSIGPIPE = 0x0800
+ SO_OOBINLINE = 0x0100
+ SO_OVERFLOWED = 0x1009
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x100c
+ SO_RERROR = 0x4000
+ SO_REUSEADDR = 0x0004
+ SO_REUSEPORT = 0x0200
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x100b
+ SO_TIMESTAMP = 0x2000
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x0040
+ UIO_MAXIOV = 1024
+ X_AMD64_INT_TYPES_H_ = 0
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_SS_MAXSIZE = 128
+ X_SYS_ANSI_H_ = 0
+ X_SYS_CDEFS_ELF_H_ = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_COMMON_ANSI_H_ = 0
+ X_SYS_COMMON_INT_TYPES_H_ = 0
+ X_SYS_SIGTYPES_H_ = 0
+ X_SYS_SOCKET_H_ = 0
+ X_SYS_UIO_H_ = 0
+ X_X86_64_CDEFS_H_ = 0
+ Pseudo_AF_HDRCMPLT = 30
+ Pseudo_AF_KEY = 29
+ Pseudo_AF_PIP = 25
+ Pseudo_AF_RTIP = 22
+ Pseudo_AF_XTP = 19
+)
+
+// file offset
+
+const ( /* uio.h:69:1: */
+ UIO_READ = 0
+ UIO_WRITE = 1
+)
+
+// Segment flag values.
+const ( /* uio.h:72:1: */
+ UIO_USERSPACE = 0 // from user data space
+ UIO_SYSSPACE = 1
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// return true if value 'a' fits in type 't'
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $NetBSD: common_int_types.h,v 1.1 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Joerg Sonnenberger.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// 7.18.1 Integer types
+
+// 7.18.1.1 Exact-width integer types
+
+type X__int8_t = int8 /* common_int_types.h:45:27 */
+type X__uint8_t = uint8 /* common_int_types.h:46:27 */
+type X__int16_t = int16 /* common_int_types.h:47:27 */
+type X__uint16_t = uint16 /* common_int_types.h:48:27 */
+type X__int32_t = int32 /* common_int_types.h:49:27 */
+type X__uint32_t = uint32 /* common_int_types.h:50:27 */
+type X__int64_t = int64 /* common_int_types.h:51:27 */
+type X__uint64_t = uint64 /* common_int_types.h:52:27 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+type X__intptr_t = int64 /* common_int_types.h:58:27 */
+type X__uintptr_t = uint64 /* common_int_types.h:59:26 */
+
+// Types which are fundamental to the implementation and may appear in
+// more than one standard header are defined here. Standard headers
+// then use:
+// #ifdef _BSD_SIZE_T_
+// typedef _BSD_SIZE_T_ size_t;
+// #undef _BSD_SIZE_T_
+// #endif
+
+type X__caddr_t = uintptr /* ansi.h:37:14 */ // core address
+type X__gid_t = X__uint32_t /* ansi.h:38:20 */ // group id
+type X__in_addr_t = X__uint32_t /* ansi.h:39:20 */ // IP(v4) address
+type X__in_port_t = X__uint16_t /* ansi.h:40:20 */ // "Internet" port number
+type X__mode_t = X__uint32_t /* ansi.h:41:20 */ // file permissions
+type X__off_t = X__int64_t /* ansi.h:42:19 */ // file offset
+type X__pid_t = X__int32_t /* ansi.h:43:19 */ // process id
+type X__sa_family_t = X__uint8_t /* ansi.h:44:19 */ // socket address family
+type X__socklen_t = uint32 /* ansi.h:45:22 */ // socket-related datum length
+type X__uid_t = X__uint32_t /* ansi.h:46:20 */ // user id
+type X__fsblkcnt_t = X__uint64_t /* ansi.h:47:20 */ // fs block count (statvfs)
+type X__fsfilcnt_t = X__uint64_t /* ansi.h:48:20 */
+type X__wctrans_t = uintptr /* ansi.h:51:32 */
+type X__wctype_t = uintptr /* ansi.h:54:31 */
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__mbstateL X__int64_t
+ F__ccgo_pad1 [120]byte
+} /* ansi.h:63:3 */
+
+type X__va_list = X__builtin_va_list /* ansi.h:72:27 */
+
+type Sa_family_t = X__sa_family_t /* socket.h:78:23 */
+
+type Socklen_t = X__socklen_t /* socket.h:83:21 */
+
+type Ssize_t = int64 /* socket.h:95:23 */
+
+// $NetBSD: uio.h,v 1.36 2011/07/27 13:20:07 uebayasi Exp $
+
+// Copyright (c) 1982, 1986, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)uio.h 8.5 (Berkeley) 2/22/94
+
+// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $
+
+// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Matt Thomas of 3am Software Foundry.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+type Iovec = struct {
+ Fiov_base uintptr
+ Fiov_len Size_t
+} /* uio.h:56:1 */
+
+// $NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
+
+// -
+// Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Jun-ichiro itojun Hagino and by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+type Off_t = X__off_t /* uio.h:65:18 */
+
+// $NetBSD: sigtypes.h,v 1.11 2017/01/12 18:29:14 christos Exp $
+
+// Copyright (c) 1982, 1986, 1989, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)signal.h 8.4 (Berkeley) 5/4/95
+
+// This header file defines various signal-related types. We also keep
+// the macros to manipulate sigset_t here, to encapsulate knowledge of
+// its internals.
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $
+
+// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Matt Thomas of 3am Software Foundry.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+type Sigset_t = struct{ F__bits [4]X__uint32_t } /* sigtypes.h:62:3 */
+
+// Macro for manipulating signal masks.
+
+type Sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size Size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* sigtypes.h:108:9 */
+
+// Macro for manipulating signal masks.
+
+type Stack_t = Sigaltstack /* sigtypes.h:116:3 */
+
+// Socket types.
+
+// Option flags per-socket.
+// SO_OTIMESTAMP 0x0400
+
+// Allowed default option flags
+
+// Additional options, not kept in so_options.
+// SO_OSNDTIMEO 0x1005
+// SO_ORCVTIMEO 0x1006
+
+// Structure used for manipulating linger option.
+type Linger = struct {
+ Fl_onoff int32
+ Fl_linger int32
+} /* socket.h:182:1 */
+
+type Accept_filter_arg = struct {
+ Faf_name [16]int8
+ Faf_arg [240]int8
+} /* socket.h:187:1 */
+
+// Level number for (get/set)sockopt() to apply to socket itself.
+
+// Address families.
+
+// Structure used by kernel to store most
+// addresses.
+type Sockaddr = struct {
+ Fsa_len X__uint8_t
+ Fsa_family X__sa_family_t
+ Fsa_data [14]int8
+} /* socket.h:255:1 */
+
+// RFC 2553: protocol-independent placeholder for socket addresses
+
+type Sockaddr_storage = struct {
+ Fss_len X__uint8_t
+ Fss_family X__sa_family_t
+ F__ss_pad1 [6]int8
+ F__ss_align X__int64_t
+ F__ss_pad2 [112]int8
+} /* socket.h:301:1 */
+
+// Protocol families, same as address families for now.
+
+type Pid_t = X__pid_t /* socket.h:366:18 */ // process id
+
+type Gid_t = X__gid_t /* socket.h:371:18 */ // group id
+
+type Uid_t = X__uid_t /* socket.h:376:18 */ // user id
+
+// Socket credentials.
+type Sockcred = struct {
+ Fsc_pid X__pid_t
+ Fsc_uid X__uid_t
+ Fsc_euid X__uid_t
+ Fsc_gid X__gid_t
+ Fsc_egid X__gid_t
+ Fsc_ngroups int32
+ Fsc_groups [1]X__gid_t
+} /* socket.h:383:1 */
+
+// Compute size of a sockcred structure with groups.
+
+// Definition for CTL_NET PCB fetching sysctls
+type Kinfo_pcb = struct {
+ Fki_pcbaddr X__uint64_t
+ Fki_ppcbaddr X__uint64_t
+ Fki_sockaddr X__uint64_t
+ Fki_family X__uint32_t
+ Fki_type X__uint32_t
+ Fki_protocol X__uint32_t
+ Fki_pflags X__uint32_t
+ Fki_sostate X__uint32_t
+ Fki_prstate X__uint32_t
+ Fki_tstate X__int32_t
+ Fki_tflags X__uint32_t
+ Fki_rcvq X__uint64_t
+ Fki_sndq X__uint64_t
+ Fki_s struct {
+ F_kis_src struct {
+ Fsa_len X__uint8_t
+ Fsa_family X__sa_family_t
+ Fsa_data [14]int8
+ }
+ F__ccgo_pad1 [248]byte
+ }
+ Fki_d struct {
+ F_kid_dst struct {
+ Fsa_len X__uint8_t
+ Fsa_family X__sa_family_t
+ Fsa_data [14]int8
+ }
+ F__ccgo_pad1 [248]byte
+ }
+ Fki_inode X__uint64_t
+ Fki_vnode X__uint64_t
+ Fki_conn X__uint64_t
+ Fki_refs X__uint64_t
+ Fki_nextref X__uint64_t
+} /* socket.h:404:1 */
+
+// PF_ROUTE - Routing table
+//
+// Three additional levels are defined:
+// Fourth: address family, 0 is wildcard
+// Fifth: type of info, defined below
+// Sixth: flag(s) to mask with for NET_RT_FLAGS
+
+// Maximum queue length specifiable by listen(2).
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// Message header for recvmsg and sendmsg calls.
+// Used value-result for recvmsg, value only for sendmsg.
+type Msghdr = struct {
+ Fmsg_name uintptr
+ Fmsg_namelen X__socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen X__socklen_t
+ Fmsg_flags int32
+} /* socket.h:479:1 */
+
+type Mmsghdr = struct {
+ Fmsg_hdr struct {
+ Fmsg_name uintptr
+ Fmsg_namelen X__socklen_t
+ F__ccgo_pad1 [4]byte
+ Fmsg_iov uintptr
+ Fmsg_iovlen int32
+ F__ccgo_pad2 [4]byte
+ Fmsg_control uintptr
+ Fmsg_controllen X__socklen_t
+ Fmsg_flags int32
+ }
+ Fmsg_len uint32
+ F__ccgo_pad1 [4]byte
+} /* socket.h:506:1 */
+
+// Extra flags used internally only
+
+// Header for ancillary data objects in msg_control buffer.
+// Used for additional information with/about a datagram
+// not expressible by flags. The format is a sequence
+// of message elements headed by cmsghdr structures.
+type Cmsghdr = struct {
+ Fcmsg_len X__socklen_t
+ Fcmsg_level int32
+ Fcmsg_type int32
+} /* socket.h:525:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go
index 3b5af84e7..fdd8a9584 100644
--- a/vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go
+++ b/vendor/modernc.org/libc/sys/stat/capi_darwin_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_darwin_amd64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_darwin_amd64.go -pkgname stat', DO NOT EDIT.
package stat
diff --git a/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go
index b24417acf..827c5c421 100644
--- a/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go
+++ b/vendor/modernc.org/libc/sys/stat/capi_darwin_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_darwin_arm64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_darwin_arm64.go -pkgname stat', DO NOT EDIT.
package stat
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_386.go b/vendor/modernc.org/libc/sys/stat/capi_linux_386.go
index 2ce23f748..56b0ecca9 100644
--- a/vendor/modernc.org/libc/sys/stat/capi_linux_386.go
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_386.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_386.go -pkgname stat', DO NOT EDIT.
package stat
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_linux_amd64.go
index 1fb4803dd..4b376b5c4 100644
--- a/vendor/modernc.org/libc/sys/stat/capi_linux_amd64.go
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_amd64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_amd64.go -pkgname stat', DO NOT EDIT.
package stat
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_arm.go b/vendor/modernc.org/libc/sys/stat/capi_linux_arm.go
index 7f372b78c..d528ab881 100644
--- a/vendor/modernc.org/libc/sys/stat/capi_linux_arm.go
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_arm.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_arm.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_arm.go -pkgname stat', DO NOT EDIT.
package stat
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_arm64.go b/vendor/modernc.org/libc/sys/stat/capi_linux_arm64.go
index 91333e641..381d13e04 100644
--- a/vendor/modernc.org/libc/sys/stat/capi_linux_arm64.go
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_arm64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_arm64.go -pkgname stat', DO NOT EDIT.
package stat
diff --git a/vendor/modernc.org/libc/sys/stat/capi_linux_s390x.go b/vendor/modernc.org/libc/sys/stat/capi_linux_s390x.go
index 995c5e20d..cd717e88a 100644
--- a/vendor/modernc.org/libc/sys/stat/capi_linux_s390x.go
+++ b/vendor/modernc.org/libc/sys/stat/capi_linux_s390x.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_s390x.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_s390x.go -pkgname stat', DO NOT EDIT.
package stat
diff --git a/vendor/modernc.org/libc/sys/stat/capi_netbsd_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_netbsd_amd64.go
new file mode 100644
index 000000000..eac88b034
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_netbsd_amd64.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/stat/capi_windows_386.go b/vendor/modernc.org/libc/sys/stat/capi_windows_386.go
index 8ae3845ca..ec7e8697b 100644
--- a/vendor/modernc.org/libc/sys/stat/capi_windows_386.go
+++ b/vendor/modernc.org/libc/sys/stat/capi_windows_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_windows_386.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_windows_386.go -pkgname stat', DO NOT EDIT.
package stat
diff --git a/vendor/modernc.org/libc/sys/stat/capi_windows_amd64.go b/vendor/modernc.org/libc/sys/stat/capi_windows_amd64.go
index fb964cc36..c05d5e74e 100644
--- a/vendor/modernc.org/libc/sys/stat/capi_windows_amd64.go
+++ b/vendor/modernc.org/libc/sys/stat/capi_windows_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_windows_amd64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys\stat\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys\stat\stat_windows_amd64.go -pkgname stat', DO NOT EDIT.
package stat
diff --git a/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go
index f505b679e..34f6c6e8c 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_darwin_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_darwin_amd64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_darwin_amd64.go -pkgname stat', DO NOT EDIT.
package stat
@@ -663,8 +663,8 @@ type X__darwin_ct_rune_t = int32 /* _types.h:70:33 */ // ct_rune_t
// mbstate_t is an opaque object to keep conversion state, during multibyte
// stream conversions. The content must not be referenced by user programs.
type X__mbstate_t = struct {
- _ [0]uint64
- F__mbstate8 [128]int8
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
} /* _types.h:79:3 */
type X__darwin_mbstate_t = X__mbstate_t /* _types.h:81:33 */ // mbstate_t
@@ -2240,14 +2240,14 @@ type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
// vnode_internal.h).
type Ostat = struct {
Fst_dev X__uint16_t
- _ [6]byte
+ F__ccgo_pad1 [6]byte
Fst_ino Ino_t
Fst_mode Mode_t
Fst_nlink Nlink_t
Fst_uid X__uint16_t
Fst_gid X__uint16_t
Fst_rdev X__uint16_t
- _ [2]byte
+ F__ccgo_pad2 [2]byte
Fst_size X__int32_t
Fst_atimespec struct {
Ftv_sec X__darwin_time_t
@@ -2287,7 +2287,7 @@ type Stat = struct {
Fst_uid Uid_t
Fst_gid Gid_t
Fst_rdev Dev_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fst_atimespec struct {
Ftv_sec X__darwin_time_t
Ftv_nsec int64
@@ -2321,7 +2321,7 @@ type Stat64 = struct {
Fst_uid Uid_t
Fst_gid Gid_t
Fst_rdev Dev_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fst_atimespec struct {
Ftv_sec X__darwin_time_t
Ftv_nsec int64
diff --git a/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go b/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go
index 2aaa1428a..7c6b9e6ad 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_darwin_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_darwin_arm64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_darwin_arm64.go -pkgname stat', DO NOT EDIT.
package stat
@@ -1141,7 +1141,7 @@ type X__darwin_pthread_t = uintptr /* _pthread_
// Evaluate to nothing for compilers that don't support availability.
// Swift compiler version
-// Allows for project-agnostic “epochs” for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
// Example:
//
// #if __swift_compiler_version_at_least(800, 2, 20)
@@ -2231,14 +2231,14 @@ type Time_t = X__darwin_time_t /* _time_t.h:31:33 */
// vnode_internal.h).
type Ostat = struct {
Fst_dev X__uint16_t
- _ [6]byte
+ F__ccgo_pad1 [6]byte
Fst_ino Ino_t
Fst_mode Mode_t
Fst_nlink Nlink_t
Fst_uid X__uint16_t
Fst_gid X__uint16_t
Fst_rdev X__uint16_t
- _ [2]byte
+ F__ccgo_pad2 [2]byte
Fst_size X__int32_t
Fst_atimespec struct {
Ftv_sec X__darwin_time_t
@@ -2278,7 +2278,7 @@ type Stat = struct {
Fst_uid Uid_t
Fst_gid Gid_t
Fst_rdev Dev_t
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Fst_atimespec struct {
Ftv_sec X__darwin_time_t
Ftv_nsec int64
diff --git a/vendor/modernc.org/libc/sys/stat/stat_freebsd_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_freebsd_amd64.go
index b71940211..a19412e89 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_freebsd_amd64.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_freebsd_amd64.go
@@ -778,8 +778,8 @@ type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number
// mbstate_t is an opaque object to keep conversion state during multibyte
// stream conversions.
type X__mbstate_t = struct {
- _ [0]uint64
- F__mbstate8 [128]int8
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
} /* _types.h:124:3 */
type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
@@ -950,9 +950,9 @@ type Timeval = struct {
} /* _timeval.h:49:1 */
type Pthread_once = struct {
- Fstate int32
- _ [4]byte
- Fmutex Pthread_mutex_t
+ Fstate int32
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
} /* _pthreadtypes.h:52:1 */
// Primitive system data type definitions required by P1003.1c.
@@ -1812,18 +1812,18 @@ type Clockinfo = struct {
// These macros are also in sys/time.h.
type Tm = struct {
- Ftm_sec int32
- Ftm_min int32
- Ftm_hour int32
- Ftm_mday int32
- Ftm_mon int32
- Ftm_year int32
- Ftm_wday int32
- Ftm_yday int32
- Ftm_isdst int32
- _ [4]byte
- Ftm_gmtoff int64
- Ftm_zone uintptr
+ Ftm_sec int32
+ Ftm_min int32
+ Ftm_hour int32
+ Ftm_mday int32
+ Ftm_mon int32
+ Ftm_year int32
+ Ftm_wday int32
+ Ftm_yday int32
+ Ftm_isdst int32
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
} /* time.h:129:1 */
// -
diff --git a/vendor/modernc.org/libc/sys/stat/stat_linux_386.go b/vendor/modernc.org/libc/sys/stat/stat_linux_386.go
index 55b6d7727..798ee36e3 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_linux_386.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_386.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_386.go -pkgname stat', DO NOT EDIT.
package stat
@@ -48,12 +48,16 @@ const (
UTIME_NOW = 1073741823
UTIME_OMIT = 1073741822
X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_STAT_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_DEFAULT_SOURCE = 1
X_FEATURES_H = 1
X_FILE_OFFSET_BITS = 64
+ X_ILP32 = 1
X_MKNOD_VER = 1
X_MKNOD_VER_LINUX = 1
X_MKNOD_VER_SVR4 = 2
@@ -85,7 +89,7 @@ type Wchar_t = int32 /* <builtin>:15:24 */
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -100,11 +104,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -119,7 +123,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -127,6 +131,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -247,6 +252,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -269,9 +276,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -286,7 +306,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -299,7 +319,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -314,7 +334,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -429,7 +449,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -450,10 +470,14 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
// Determine the wordsize from the preprocessor defines.
// Properties of long double type. ldbl-96 version.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -468,7 +492,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// long double is distinct from double, so there is nothing to
// define here.
@@ -506,7 +530,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -521,11 +545,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -540,43 +564,63 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
+// Bit size of the time_t type at glibc build time, x86-64 and x32 case.
+// Copyright (C) 2018-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/>.
+
+// For others, time size is word size.
+
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint32 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint32 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:46:44 */
-type X__uint64_t = uint64 /* types.h:47:46 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+type X__int64_t = int64 /* types.h:47:44 */
+type X__uint64_t = uint64 /* types.h:48:46 */
// Smallest types with at least a given width.
-type X__int_least8_t = X__int8_t /* types.h:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:65:37 */
-type X__u_quad_t = uint64 /* types.h:66:46 */
+type X__quad_t = int64 /* types.h:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:74:37 */
-type X__uintmax_t = uint64 /* types.h:75:46 */
+type X__intmax_t = int64 /* types.h:75:37 */
+type X__uintmax_t = uint64 /* types.h:76:46 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -588,7 +632,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -610,7 +654,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// We want __extension__ before typedef's that use nonstandard base types
// such as `long long' in C89 mode.
// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
-// Copyright (C) 2012-2018 Free Software Foundation, Inc.
+// Copyright (C) 2012-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
@@ -625,7 +669,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
//
// 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/>.
+// <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.
@@ -634,81 +678,108 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = X__u_quad_t /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint32 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = X__u_quad_t /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint32 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int32 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = X__quad_t /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int32 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint32 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = X__u_quad_t /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int32 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int32 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// Define a 64-bit time type alongsize the 32-bit one.
+
+type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers.
+type X__ino64_t = X__uint64_t /* 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 = uint32 /* types.h:151:27 */ // Type of file link counts.
+type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets.
+type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
+type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch.
+type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
+type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds.
+
+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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int32 /* types.h:172:29 */
+type X__blksize_t = int32 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int32 /* types.h:177:28 */
-type X__blkcnt64_t = X__quad_t /* types.h:178:30 */
+type X__blkcnt_t = int32 /* types.h:179:28 */
+type X__blkcnt64_t = X__int64_t /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint32 /* types.h:181:30 */
-type X__fsblkcnt64_t = X__u_quad_t /* types.h:182:32 */
+type X__fsblkcnt_t = uint32 /* types.h:183:30 */
+type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint32 /* types.h:185:30 */
-type X__fsfilcnt64_t = X__u_quad_t /* types.h:186:32 */
+type X__fsfilcnt_t = uint32 /* types.h:187:30 */
+type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int32 /* types.h:189:28 */
+type X__fsword_t = int32 /* types.h:191:28 */
-type X__ssize_t = int32 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int32 /* types.h:194:33 */
+type X__syscall_slong_t = int32 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint32 /* types.h:196:33 */
+type X__syscall_ulong_t = uint32 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int32 /* types.h:204:25 */
+type X__intptr_t = int32 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 X__time64_t = X__int64_t /* types.h:222:28 */
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -723,22 +794,55 @@ type X__sig_atomic_t = int32 /* types.h:212:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
+// Definitions for byte order, according to significance of bytes,
+// from low addresses to high addresses. The value is what you get by
+// putting '4' in the most significant byte, '3' in the second most
+// significant byte, '2' in the second least significant byte, and '1'
+// in the least significant byte, and then writing down one digit for
+// each byte, starting with the byte at the lowest address at the left,
+// and proceeding to the byte with the highest address at the right.
+
+// This file defines `__BYTE_ORDER' for the particular machine.
+
+// i386/x86_64 are little-endian.
+
+// Some machines may need to use a different endianness for floating point
+// values.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
// The Single Unix specification says that some more types are
// available here.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -753,7 +857,7 @@ type Timespec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -774,7 +878,7 @@ type Off_t = X__off64_t /* stat.h:72:19 */
type Uid_t = X__uid_t /* stat.h:78:17 */
-// Copyright (C) 1999-2018 Free Software Foundation, Inc.
+// Copyright (C) 1999-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
@@ -789,28 +893,28 @@ type Uid_t = X__uid_t /* stat.h:78:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Versions of the `struct stat' data structure.
// i386 versions of the `xmknod' interface.
type Stat = struct {
- Fst_dev X__dev_t
- F__pad1 uint16
- _ [2]byte
- F__st_ino X__ino_t
- Fst_mode X__mode_t
- Fst_nlink X__nlink_t
- Fst_uid X__uid_t
- Fst_gid X__gid_t
- Fst_rdev X__dev_t
- F__pad2 uint16
- _ [2]byte
- Fst_size X__off64_t
- Fst_blksize X__blksize_t
- Fst_blocks X__blkcnt64_t
- Fst_atim struct {
+ Fst_dev X__dev_t
+ F__pad1 uint16
+ F__ccgo_pad1 [2]byte
+ F__st_ino X__ino_t
+ Fst_mode X__mode_t
+ Fst_nlink X__nlink_t
+ Fst_uid X__uid_t
+ Fst_gid X__gid_t
+ Fst_rdev X__dev_t
+ F__pad2 uint16
+ F__ccgo_pad2 [2]byte
+ Fst_size X__off64_t
+ Fst_blksize X__blksize_t
+ Fst_blocks X__blkcnt64_t
+ Fst_atim struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
}
diff --git a/vendor/modernc.org/libc/sys/stat/stat_linux_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_linux_amd64.go
index d1825b29d..f4422a2db 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_linux_amd64.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_amd64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_amd64.go -pkgname stat', DO NOT EDIT.
package stat
@@ -48,7 +48,10 @@ const (
UTIME_NOW = 1073741823
UTIME_OMIT = 1073741822
X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_STAT_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_DEFAULT_SOURCE = 1
@@ -91,7 +94,7 @@ type X__uint128_t = struct {
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -106,11 +109,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -125,7 +128,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -133,6 +136,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -253,6 +257,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -275,9 +281,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -292,7 +311,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -305,7 +324,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -320,7 +339,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -435,7 +454,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -456,11 +475,15 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
// Determine the wordsize from the preprocessor defines.
// Both x86-64 and x32 use the 64-bit system call interface.
// Properties of long double type. ldbl-96 version.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -475,7 +498,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// long double is distinct from double, so there is nothing to
// define here.
@@ -513,7 +536,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -528,11 +551,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -547,45 +570,64 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
// 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.
+// 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/>.
+
+// For others, time size is word size.
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint64 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint64 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:43:25 */
-type X__uint64_t = uint64 /* types.h:44:27 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+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:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:62:18 */
-type X__u_quad_t = uint64 /* types.h:63:27 */
+type X__quad_t = int64 /* types.h:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:71:18 */
-type X__uintmax_t = uint64 /* types.h:72:27 */
+type X__intmax_t = int64 /* types.h:72:18 */
+type X__uintmax_t = uint64 /* types.h:73:27 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -597,7 +639,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -618,7 +660,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// No need to mark the typedef with __extension__.
// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
-// Copyright (C) 2012-2018 Free Software Foundation, Inc.
+// Copyright (C) 2012-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
@@ -633,7 +675,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
//
// 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/>.
+// <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.
@@ -648,83 +690,111 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// And for __rlim_t and __rlim64_t.
+// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
+
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint64 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// If we already have 64-bit time type then use it.
+
+type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+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__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.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+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__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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int64 /* types.h:172:29 */
+type X__blksize_t = int64 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int64 /* types.h:177:28 */
-type X__blkcnt64_t = int64 /* types.h:178:30 */
+type X__blkcnt_t = int64 /* types.h:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint64 /* types.h:181:30 */
-type X__fsblkcnt64_t = uint64 /* types.h:182:32 */
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint64 /* types.h:185:30 */
-type X__fsfilcnt64_t = uint64 /* types.h:186:32 */
+type X__fsfilcnt_t = uint64 /* types.h:187:30 */
+type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int64 /* types.h:189:28 */
+type X__fsword_t = int64 /* types.h:191:28 */
-type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int64 /* types.h:194:33 */
+type X__syscall_slong_t = int64 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint64 /* types.h:196:33 */
+type X__syscall_ulong_t = uint64 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int64 /* types.h:204:25 */
+type X__intptr_t = int64 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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.
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -739,22 +809,55 @@ type X__sig_atomic_t = int32 /* types.h:212:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
+// Definitions for byte order, according to significance of bytes,
+// from low addresses to high addresses. The value is what you get by
+// putting '4' in the most significant byte, '3' in the second most
+// significant byte, '2' in the second least significant byte, and '1'
+// in the least significant byte, and then writing down one digit for
+// each byte, starting with the byte at the lowest address at the left,
+// and proceeding to the byte with the highest address at the right.
+
+// This file defines `__BYTE_ORDER' for the particular machine.
+
+// i386/x86_64 are little-endian.
+
+// Some machines may need to use a different endianness for floating point
+// values.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
// The Single Unix specification says that some more types are
// available here.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -769,7 +872,7 @@ type Timespec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -790,7 +893,7 @@ type Off_t = X__off64_t /* stat.h:72:19 */
type Uid_t = X__uid_t /* stat.h:78:17 */
-// Copyright (C) 1999-2018 Free Software Foundation, Inc.
+// Copyright (C) 1999-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
@@ -805,7 +908,7 @@ type Uid_t = X__uid_t /* stat.h:78:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Versions of the `struct stat' data structure.
diff --git a/vendor/modernc.org/libc/sys/stat/stat_linux_arm.go b/vendor/modernc.org/libc/sys/stat/stat_linux_arm.go
index 39c348bbd..af8229baf 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_linux_arm.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_arm.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_arm.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_arm.go -pkgname stat', DO NOT EDIT.
package stat
@@ -48,7 +48,10 @@ const (
UTIME_NOW = 1073741823
UTIME_OMIT = 1073741822
X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_STAT_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_DEFAULT_SOURCE = 1
@@ -84,7 +87,7 @@ type Wchar_t = uint32 /* <builtin>:15:24 */
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -99,11 +102,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -118,7 +121,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -126,6 +129,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -246,6 +250,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -268,9 +274,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -285,7 +304,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -298,7 +317,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -313,7 +332,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -428,7 +447,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -449,7 +468,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
-// Copyright (C) 1999-2018 Free Software Foundation, Inc.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
+// Copyright (C) 1999-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
@@ -464,10 +487,10 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Properties of long double type.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -482,7 +505,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This header is included by <sys/cdefs.h>.
//
@@ -536,7 +559,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -551,11 +574,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -570,9 +593,9 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1999-2018 Free Software Foundation, Inc.
+// Copyright (C) 1999-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
@@ -587,41 +610,78 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
+
+// Bit size of the time_t type at glibc build time, general case.
+// Copyright (C) 2018-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/>.
+
+// Copyright (C) 1999-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/>.
+
+// Size in bits of the 'time_t' type of the default ABI.
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint32 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint32 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:46:44 */
-type X__uint64_t = uint64 /* types.h:47:46 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+type X__int64_t = int64 /* types.h:47:44 */
+type X__uint64_t = uint64 /* types.h:48:46 */
// Smallest types with at least a given width.
-type X__int_least8_t = X__int8_t /* types.h:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:65:37 */
-type X__u_quad_t = uint64 /* types.h:66:46 */
+type X__quad_t = int64 /* types.h:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:74:37 */
-type X__uintmax_t = uint64 /* types.h:75:46 */
+type X__intmax_t = int64 /* types.h:75:37 */
+type X__uintmax_t = uint64 /* types.h:76:46 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -633,7 +693,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -655,7 +715,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// We want __extension__ before typedef's that use nonstandard base types
// such as `long long' in C89 mode.
// bits/typesizes.h -- underlying types for *_t. Generic version.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -670,88 +730,115 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
//
// 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/>.
+// <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.
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = X__u_quad_t /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint32 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = X__u_quad_t /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint32 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int32 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = X__quad_t /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int32 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint32 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = X__u_quad_t /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int32 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int32 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// Define a 64-bit time type alongsize the 32-bit one.
+
+type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers.
+type X__ino64_t = X__uint64_t /* 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 = uint32 /* types.h:151:27 */ // Type of file link counts.
+type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets.
+type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
+type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch.
+type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
+type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds.
+
+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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int32 /* types.h:172:29 */
+type X__blksize_t = int32 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int32 /* types.h:177:28 */
-type X__blkcnt64_t = X__quad_t /* types.h:178:30 */
+type X__blkcnt_t = int32 /* types.h:179:28 */
+type X__blkcnt64_t = X__int64_t /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint32 /* types.h:181:30 */
-type X__fsblkcnt64_t = X__u_quad_t /* types.h:182:32 */
+type X__fsblkcnt_t = uint32 /* types.h:183:30 */
+type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint32 /* types.h:185:30 */
-type X__fsfilcnt64_t = X__u_quad_t /* types.h:186:32 */
+type X__fsfilcnt_t = uint32 /* types.h:187:30 */
+type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int32 /* types.h:189:28 */
+type X__fsword_t = int32 /* types.h:191:28 */
-type X__ssize_t = int32 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int32 /* types.h:194:33 */
+type X__syscall_slong_t = int32 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint32 /* types.h:196:33 */
+type X__syscall_ulong_t = uint32 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int32 /* types.h:204:25 */
+type X__intptr_t = int32 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 X__time64_t = X__int64_t /* types.h:222:28 */
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -766,22 +853,55 @@ type X__sig_atomic_t = int32 /* types.h:212:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
+// Definitions for byte order, according to significance of bytes,
+// from low addresses to high addresses. The value is what you get by
+// putting '4' in the most significant byte, '3' in the second most
+// significant byte, '2' in the second least significant byte, and '1'
+// in the least significant byte, and then writing down one digit for
+// each byte, starting with the byte at the lowest address at the left,
+// and proceeding to the byte with the highest address at the right.
+
+// This file defines `__BYTE_ORDER' for the particular machine.
+
+// ARM has selectable endianness.
+
+// Some machines may need to use a different endianness for floating point
+// values.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
// The Single Unix specification says that some more types are
// available here.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -796,7 +916,7 @@ type Timespec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -817,7 +937,7 @@ type Off_t = X__off64_t /* stat.h:72:19 */
type Uid_t = X__uid_t /* stat.h:78:17 */
-// Copyright (C) 1992-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -832,29 +952,29 @@ type Uid_t = X__uid_t /* stat.h:78:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Versions of the `struct stat' data structure.
// Versions of the `xmknod' interface.
type Stat = struct {
- Fst_dev X__dev_t
- F__pad1 uint16
- _ [2]byte
- F__st_ino X__ino_t
- Fst_mode X__mode_t
- Fst_nlink X__nlink_t
- Fst_uid X__uid_t
- Fst_gid X__gid_t
- Fst_rdev X__dev_t
- F__pad2 uint16
- _ [6]byte
- Fst_size X__off64_t
- Fst_blksize X__blksize_t
- _ [4]byte
- Fst_blocks X__blkcnt64_t
- Fst_atim struct {
+ Fst_dev X__dev_t
+ F__pad1 uint16
+ F__ccgo_pad1 [2]byte
+ F__st_ino X__ino_t
+ Fst_mode X__mode_t
+ Fst_nlink X__nlink_t
+ Fst_uid X__uid_t
+ Fst_gid X__gid_t
+ Fst_rdev X__dev_t
+ F__pad2 uint16
+ F__ccgo_pad2 [6]byte
+ Fst_size X__off64_t
+ Fst_blksize X__blksize_t
+ F__ccgo_pad3 [4]byte
+ Fst_blocks X__blkcnt64_t
+ Fst_atim struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
}
@@ -869,4 +989,4 @@ type Stat = struct {
Fst_ino X__ino64_t
} /* stat.h:38:1 */
-var _ int8 /* gen.c:2:13: */
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_linux_arm64.go b/vendor/modernc.org/libc/sys/stat/stat_linux_arm64.go
index e06d284b7..f701f6f52 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_linux_arm64.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_arm64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_arm64.go -pkgname stat', DO NOT EDIT.
package stat
@@ -15,69 +15,65 @@ var _ atomic.Value
var _ unsafe.Pointer
const (
- ACCESSPERMS = 511
- ALLPERMS = 4095
- BIG_ENDIAN = 4321
- BYTE_ORDER = 1234
- DEFFILEMODE = 438
- LITTLE_ENDIAN = 1234
- PDP_ENDIAN = 3412
- S_BLKSIZE = 512
- S_IEXEC = 64
- S_IFBLK = 24576
- S_IFCHR = 8192
- S_IFDIR = 16384
- S_IFIFO = 4096
- S_IFLNK = 40960
- S_IFMT = 61440
- S_IFREG = 32768
- S_IFSOCK = 49152
- S_IREAD = 256
- S_IRGRP = 32
- S_IROTH = 4
- S_IRUSR = 256
- S_IRWXG = 56
- S_IRWXO = 7
- S_IRWXU = 448
- S_ISGID = 1024
- S_ISUID = 2048
- S_ISVTX = 512
- S_IWGRP = 16
- S_IWOTH = 2
- S_IWRITE = 128
- S_IWUSR = 128
- S_IXGRP = 8
- S_IXOTH = 1
- S_IXUSR = 64
- UTIME_NOW = 1073741823
- UTIME_OMIT = 1073741822
- X_ATFILE_SOURCE = 1
- X_BITS_BYTESWAP_H = 1
- X_BITS_STAT_H = 1
- X_BITS_TYPESIZES_H = 1
- X_BITS_TYPES_H = 1
- X_BITS_UINTN_IDENTITY_H = 1
- X_DEFAULT_SOURCE = 1
- X_ENDIAN_H = 1
- X_FEATURES_H = 1
- X_FILE_OFFSET_BITS = 64
- X_LP64 = 1
- X_MKNOD_VER = 0
- X_MKNOD_VER_LINUX = 0
- X_POSIX_C_SOURCE = 200809
- X_POSIX_SOURCE = 1
- X_STATBUF_ST_BLKSIZE = 0
- X_STATBUF_ST_NSEC = 0
- X_STATBUF_ST_RDEV = 0
- X_STAT_VER = 0
- X_STAT_VER_KERNEL = 0
- X_STAT_VER_LINUX = 0
- X_STDC_PREDEF_H = 1
- X_STRUCT_TIMESPEC = 1
- X_SYS_CDEFS_H = 1
- X_SYS_STAT_H = 1
- Linux = 1
- Unix = 1
+ ACCESSPERMS = 511
+ ALLPERMS = 4095
+ DEFFILEMODE = 438
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 24576
+ S_IFCHR = 8192
+ S_IFDIR = 16384
+ S_IFIFO = 4096
+ S_IFLNK = 40960
+ S_IFMT = 61440
+ S_IFREG = 32768
+ S_IFSOCK = 49152
+ S_IREAD = 256
+ S_IRGRP = 32
+ S_IROTH = 4
+ S_IRUSR = 256
+ S_IRWXG = 56
+ S_IRWXO = 7
+ S_IRWXU = 448
+ S_ISGID = 1024
+ S_ISUID = 2048
+ S_ISVTX = 512
+ S_IWGRP = 16
+ S_IWOTH = 2
+ S_IWRITE = 128
+ S_IWUSR = 128
+ S_IXGRP = 8
+ S_IXOTH = 1
+ S_IXUSR = 64
+ UTIME_NOW = 1073741823
+ UTIME_OMIT = 1073741822
+ X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
+ X_BITS_STAT_H = 1
+ X_BITS_TIME64_H = 1
+ X_BITS_TYPESIZES_H = 1
+ X_BITS_TYPES_H = 1
+ X_DEFAULT_SOURCE = 1
+ X_FEATURES_H = 1
+ X_FILE_OFFSET_BITS = 64
+ X_LP64 = 1
+ X_MKNOD_VER = 0
+ X_MKNOD_VER_LINUX = 0
+ X_POSIX_C_SOURCE = 200809
+ X_POSIX_SOURCE = 1
+ X_STATBUF_ST_BLKSIZE = 0
+ X_STATBUF_ST_NSEC = 0
+ X_STATBUF_ST_RDEV = 0
+ X_STAT_VER = 0
+ X_STAT_VER_KERNEL = 0
+ X_STAT_VER_LINUX = 0
+ X_STDC_PREDEF_H = 1
+ X_STRUCT_TIMESPEC = 1
+ X_SYS_CDEFS_H = 1
+ X_SYS_STAT_H = 1
+ Linux = 1
+ Unix = 1
)
type Ptrdiff_t = int64 /* <builtin>:3:26 */
@@ -98,7 +94,7 @@ type X__uint128_t = struct {
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -113,11 +109,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -132,7 +128,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -140,6 +136,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -260,6 +257,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -282,9 +281,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -299,7 +311,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -312,7 +324,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -327,7 +339,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -442,7 +454,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -463,9 +475,13 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
// Determine the wordsize from the preprocessor defines.
//
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -480,10 +496,10 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Properties of long double type. ldbl-128 version.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -498,7 +514,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// long double is distinct from double, so there is nothing to
// define here.
@@ -532,7 +548,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// Determine the wordsize from the preprocessor defines.
//
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -547,7 +563,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This file is automatically generated.
// It defines a symbol `__stub_FUNCTION' for each function
@@ -555,7 +571,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -570,11 +586,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -589,11 +605,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
//
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -608,41 +624,80 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
+
+// Bit size of the time_t type at glibc build time, general case.
+// Copyright (C) 2018-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.
+//
+// Copyright (C) 2016-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/>.
+
+// Size in bits of the 'time_t' type of the default ABI.
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint64 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint64 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:43:25 */
-type X__uint64_t = uint64 /* types.h:44:27 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+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:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:62:18 */
-type X__u_quad_t = uint64 /* types.h:63:27 */
+type X__quad_t = int64 /* types.h:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:71:18 */
-type X__uintmax_t = uint64 /* types.h:72:27 */
+type X__intmax_t = int64 /* types.h:72:18 */
+type X__uintmax_t = uint64 /* types.h:73:27 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -654,7 +709,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -675,7 +730,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// No need to mark the typedef with __extension__.
// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
-// Copyright (C) 2011-2018 Free Software Foundation, Inc.
+// Copyright (C) 2011-2020 Free Software Foundation, Inc.
// This file is part of the GNU C Library.
// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
//
@@ -691,7 +746,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
//
// 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/>.
+// <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.
@@ -704,83 +759,110 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// And for __rlim_t and __rlim64_t.
+// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint32 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// If we already have 64-bit time type then use it.
+
+type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+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 = 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.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+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__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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int32 /* types.h:172:29 */
+type X__blksize_t = int32 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int64 /* types.h:177:28 */
-type X__blkcnt64_t = int64 /* types.h:178:30 */
+type X__blkcnt_t = int64 /* types.h:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint64 /* types.h:181:30 */
-type X__fsblkcnt64_t = uint64 /* types.h:182:32 */
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint64 /* types.h:185:30 */
-type X__fsfilcnt64_t = uint64 /* types.h:186:32 */
+type X__fsfilcnt_t = uint64 /* types.h:187:30 */
+type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int64 /* types.h:189:28 */
+type X__fsword_t = int64 /* types.h:191:28 */
-type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int64 /* types.h:194:33 */
+type X__syscall_slong_t = int64 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint64 /* types.h:196:33 */
+type X__syscall_ulong_t = uint64 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int64 /* types.h:204:25 */
+type X__intptr_t = int64 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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.
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -795,22 +877,55 @@ type X__sig_atomic_t = int32 /* types.h:212:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
+// Definitions for byte order, according to significance of bytes,
+// from low addresses to high addresses. The value is what you get by
+// putting '4' in the most significant byte, '3' in the second most
+// significant byte, '2' in the second least significant byte, and '1'
+// in the least significant byte, and then writing down one digit for
+// each byte, starting with the byte at the lowest address at the left,
+// and proceeding to the byte with the highest address at the right.
+
+// This file defines `__BYTE_ORDER' for the particular machine.
+
+// AArch64 has selectable endianness.
+
+// Some machines may need to use a different endianness for floating point
+// values.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
// The Single Unix specification says that some more types are
// available here.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -825,7 +940,7 @@ type Timespec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -846,9 +961,26 @@ type Off_t = X__off64_t /* stat.h:72:19 */
type Uid_t = X__uid_t /* stat.h:78:17 */
-// Determine the wordsize from the preprocessor defines.
+// Copyright (C) 2011-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
+// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
//
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// 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/>.
+
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
@@ -865,6 +997,25 @@ type Uid_t = X__uid_t /* stat.h:78:17 */
// License along with the GNU C Library; if not, see
// <http://www.gnu.org/licenses/>.
+// Determine the wordsize from the preprocessor defines.
+//
+// Copyright (C) 2016-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/>.
+
// 64-bit libc uses the kernel's 'struct stat', accessed via the
// stat() syscall; 32-bit libc uses the kernel's 'struct stat64'
// and accesses it via the stat64() syscall. All the various
@@ -901,6 +1052,6 @@ type Stat = struct {
Ftv_nsec X__syscall_slong_t
}
F__glibc_reserved [2]int32
-} /* stat.h:55:1 */
+} /* stat.h:58:1 */
-var _ int8 /* gen.c:2:13: */
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_linux_s390x.go b/vendor/modernc.org/libc/sys/stat/stat_linux_s390x.go
index 34c93f797..8a13a9b03 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_linux_s390x.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_linux_s390x.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_s390x.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_s390x.go -pkgname stat', DO NOT EDIT.
package stat
@@ -48,7 +48,10 @@ const (
UTIME_NOW = 1073741823
UTIME_OMIT = 1073741822
X_ATFILE_SOURCE = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_STAT_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_DEFAULT_SOURCE = 1
@@ -91,7 +94,7 @@ type X__uint128_t = struct {
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -106,11 +109,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 5.6 File Characteristics <sys/stat.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -125,7 +128,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -133,6 +136,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -253,6 +257,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -275,9 +281,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -292,7 +311,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -305,7 +324,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -320,7 +339,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -435,7 +454,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -456,10 +475,14 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
// Determine the wordsize from the preprocessor defines.
// Properties of long double type. ldbl-opt version.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -474,7 +497,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
// intended for use in preprocessor macros.
@@ -511,7 +534,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -526,11 +549,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -545,43 +568,65 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
+// Bit size of the time_t type at glibc build time, general case.
+// Copyright (C) 2018-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.
+
+// Size in bits of the 'time_t' type of the default ABI.
+
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint64 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint64 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:43:25 */
-type X__uint64_t = uint64 /* types.h:44:27 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+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:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:62:18 */
-type X__u_quad_t = uint64 /* types.h:63:27 */
+type X__quad_t = int64 /* types.h:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:71:18 */
-type X__uintmax_t = uint64 /* types.h:72:27 */
+type X__intmax_t = int64 /* types.h:72:18 */
+type X__uintmax_t = uint64 /* types.h:73:27 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -593,7 +638,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -614,7 +659,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// No need to mark the typedef with __extension__.
// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
-// Copyright (C) 2003-2018 Free Software Foundation, Inc.
+// Copyright (C) 2003-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
@@ -629,7 +674,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
//
// 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/>.
+// <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.
@@ -644,83 +689,111 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// And for __rlim_t and __rlim64_t.
+// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
+
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint64 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// If we already have 64-bit time type then use it.
+
+type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+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__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.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+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__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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int64 /* types.h:172:29 */
+type X__blksize_t = int64 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int64 /* types.h:177:28 */
-type X__blkcnt64_t = int64 /* types.h:178:30 */
+type X__blkcnt_t = int64 /* types.h:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint64 /* types.h:181:30 */
-type X__fsblkcnt64_t = uint64 /* types.h:182:32 */
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint64 /* types.h:185:30 */
-type X__fsfilcnt64_t = uint64 /* types.h:186:32 */
+type X__fsfilcnt_t = uint64 /* types.h:187:30 */
+type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int64 /* types.h:189:28 */
+type X__fsword_t = int64 /* types.h:191:28 */
-type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int64 /* types.h:194:33 */
+type X__syscall_slong_t = int64 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint64 /* types.h:196:33 */
+type X__syscall_ulong_t = uint64 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int64 /* types.h:204:25 */
+type X__intptr_t = int64 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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.
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -735,22 +808,55 @@ type X__sig_atomic_t = int32 /* types.h:212:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
+// Definitions for byte order, according to significance of bytes,
+// from low addresses to high addresses. The value is what you get by
+// putting '4' in the most significant byte, '3' in the second most
+// significant byte, '2' in the second least significant byte, and '1'
+// in the least significant byte, and then writing down one digit for
+// each byte, starting with the byte at the lowest address at the left,
+// and proceeding to the byte with the highest address at the right.
+
+// This file defines `__BYTE_ORDER' for the particular machine.
+
+// S/390 is big-endian.
+
+// Some machines may need to use a different endianness for floating point
+// values.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
// The Single Unix specification says that some more types are
// available here.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -765,7 +871,7 @@ type Timespec = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -786,7 +892,7 @@ type Off_t = X__off64_t /* stat.h:72:19 */
type Uid_t = X__uid_t /* stat.h:78:17 */
-// Copyright (C) 2000-2018 Free Software Foundation, Inc.
+// Copyright (C) 2000-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
@@ -801,7 +907,7 @@ type Uid_t = X__uid_t /* stat.h:78:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
@@ -836,4 +942,4 @@ type Stat = struct {
F__glibc_reserved [3]int64
} /* stat.h:50:1 */
-var _ int8 /* gen.c:2:13: */
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_netbsd_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_netbsd_amd64.go
new file mode 100644
index 000000000..a12927200
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/stat/stat_netbsd_amd64.go
@@ -0,0 +1,2354 @@
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_netbsd_amd64.go -pkgname stat', DO NOT EDIT.
+
+package stat
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ ACCESSPERMS = 511
+ ALLPERMS = 4095
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ CLOCKS_PER_SEC = 100
+ CLOCK_MONOTONIC = 3
+ CLOCK_PROCESS_CPUTIME_ID = 0x40000000
+ CLOCK_PROF = 2
+ CLOCK_REALTIME = 0
+ CLOCK_THREAD_CPUTIME_ID = 0x20000000
+ CLOCK_VIRTUAL = 1
+ DEFFILEMODE = 438
+ FD_SETSIZE = 256
+ INT16_MAX = 32767
+ INT16_MIN = -32768
+ INT32_MAX = 2147483647
+ INT32_MIN = -2147483648
+ INT64_MAX = 9223372036854775807
+ INT64_MIN = -9223372036854775808
+ INT8_MAX = 127
+ INT8_MIN = -128
+ INTMAX_MAX = 9223372036854775807
+ INTMAX_MIN = -9223372036854775808
+ INTPTR_MAX = 9223372036854775807
+ INTPTR_MIN = -9223372036854775808
+ INT_FAST16_MAX = 2147483647
+ INT_FAST16_MIN = -2147483648
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 2147483647
+ INT_FAST8_MIN = -2147483648
+ INT_LEAST16_MAX = 32767
+ INT_LEAST16_MIN = -32768
+ INT_LEAST32_MAX = 2147483647
+ INT_LEAST32_MIN = -2147483648
+ INT_LEAST64_MAX = 9223372036854775807
+ INT_LEAST64_MIN = -9223372036854775808
+ INT_LEAST8_MAX = 127
+ INT_LEAST8_MIN = -128
+ ITIMER_MONOTONIC = 3
+ ITIMER_PROF = 2
+ ITIMER_REAL = 0
+ ITIMER_VIRTUAL = 1
+ LITTLE_ENDIAN = 1234
+ NBBY = 8
+ NFDBITS = 32
+ NODEVMAJOR = -1
+ PDP_ENDIAN = 3412
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ SF_APPEND = 0x00040000
+ SF_ARCHIVED = 0x00010000
+ SF_IMMUTABLE = 0x00020000
+ SF_LOG = 0x00400000
+ SF_SETTABLE = 0xffff0000
+ SF_SNAPINVAL = 0x00800000
+ SF_SNAPSHOT = 0x00200000
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIZE_MAX = 18446744073709551615
+ S_ARCH1 = 65536
+ S_ARCH2 = 131072
+ S_BLKSIZE = 512
+ S_IEXEC = 64
+ S_IFBLK = 24576
+ S_IFCHR = 8192
+ S_IFDIR = 16384
+ S_IFIFO = 4096
+ S_IFLNK = 40960
+ S_IFMT = 61440
+ S_IFREG = 32768
+ S_IFSOCK = 49152
+ S_IFWHT = 57344
+ S_IREAD = 256
+ S_IRGRP = 0000040
+ S_IROTH = 0000004
+ S_IRUSR = 0000400
+ S_IRWXG = 0000070
+ S_IRWXO = 0000007
+ S_IRWXU = 0000700
+ S_ISGID = 0002000
+ S_ISTXT = 0001000
+ S_ISUID = 0004000
+ S_ISVTX = 512
+ S_IWGRP = 0000020
+ S_IWOTH = 0000002
+ S_IWRITE = 128
+ S_IWUSR = 0000200
+ S_IXGRP = 0000010
+ S_IXOTH = 0000001
+ S_IXUSR = 0000100
+ TIMER_ABSTIME = 0x1
+ TIMER_RELTIME = 0x0
+ TIME_UTC = 1
+ UF_APPEND = 0x00000004
+ UF_IMMUTABLE = 0x00000002
+ UF_NODUMP = 0x00000001
+ UF_OPAQUE = 0x00000008
+ UF_SETTABLE = 0x0000ffff
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 4294967295
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 4294967295
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ UTIME_NOW = 1073741823
+ UTIME_OMIT = 1073741822
+ WCHAR_MAX = 0x7fffffff
+ WCHAR_MIN = -2147483648
+ WINT_MAX = 0x7fffffff
+ WINT_MIN = -2147483648
+ X_AMD64_BYTE_SWAP_H_ = 0
+ X_AMD64_INT_CONST_H_ = 0
+ X_AMD64_INT_LIMITS_H_ = 0
+ X_AMD64_INT_MWGWTYPES_H_ = 0
+ X_AMD64_INT_TYPES_H_ = 0
+ X_AMD64_WCHAR_LIMITS_H_ = 0
+ X_BIG_ENDIAN = 4321
+ X_BSD_INT16_T_ = 0
+ X_BSD_INT32_T_ = 0
+ X_BSD_INT64_T_ = 0
+ X_BSD_INT8_T_ = 0
+ X_BSD_INTPTR_T_ = 0
+ X_BSD_UINT16_T_ = 0
+ X_BSD_UINT32_T_ = 0
+ X_BSD_UINT64_T_ = 0
+ X_BSD_UINT8_T_ = 0
+ X_BSD_UINTPTR_T_ = 0
+ X_BYTE_ORDER = 1234
+ X_FILE_OFFSET_BITS = 64
+ X_LIB_PTHREAD_TYPES_H = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_PDP_ENDIAN = 3412
+ X_PT_BARRIERATTR_DEAD = 0xDEAD0808
+ X_PT_BARRIERATTR_MAGIC = 0x88880808
+ X_PT_BARRIER_DEAD = 0xDEAD0008
+ X_PT_BARRIER_MAGIC = 0x88880008
+ X_PT_CONDATTR_DEAD = 0xDEAD0006
+ X_PT_CONDATTR_MAGIC = 0x66660006
+ X_PT_COND_DEAD = 0xDEAD0005
+ X_PT_COND_MAGIC = 0x55550005
+ X_PT_MUTEXATTR_DEAD = 0xDEAD0004
+ X_PT_MUTEXATTR_MAGIC = 0x44440004
+ X_PT_MUTEX_DEAD = 0xDEAD0003
+ X_PT_MUTEX_MAGIC = 0x33330003
+ X_PT_RWLOCKATTR_DEAD = 0xDEAD0909
+ X_PT_RWLOCKATTR_MAGIC = 0x99990909
+ X_PT_RWLOCK_DEAD = 0xDEAD0009
+ X_PT_RWLOCK_MAGIC = 0x99990009
+ X_PT_SPINLOCK_DEAD = 0xDEAD0007
+ X_PT_SPINLOCK_MAGIC = 0x77770007
+ X_PT_SPINLOCK_PSHARED = 0x00000001
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_SIZE_T = 0
+ X_SYS_ANSI_H_ = 0
+ X_SYS_BSWAP_H_ = 0
+ X_SYS_CDEFS_ELF_H_ = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_COMMON_ANSI_H_ = 0
+ X_SYS_COMMON_INT_LIMITS_H_ = 0
+ X_SYS_COMMON_INT_MWGWTYPES_H_ = 0
+ X_SYS_COMMON_INT_TYPES_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_FD_SET_H_ = 0
+ X_SYS_IDTYPE_H_ = 0
+ X_SYS_NULL_H_ = 0
+ X_SYS_SELECT_H_ = 0
+ X_SYS_SIGTYPES_H_ = 0
+ X_SYS_STAT_H_ = 0
+ X_SYS_STDINT_H_ = 0
+ X_SYS_TIMESPEC_H_ = 0
+ X_SYS_TIME_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_S_ARCH1 = 0200000
+ X_S_ARCH2 = 0400000
+ X_S_IFBLK = 0060000
+ X_S_IFCHR = 0020000
+ X_S_IFDIR = 0040000
+ X_S_IFIFO = 0010000
+ X_S_IFLNK = 0120000
+ X_S_IFMT = 0170000
+ X_S_IFREG = 0100000
+ X_S_IFSOCK = 0140000
+ X_S_IFWHT = 0160000
+ X_S_ISVTX = 0001000
+ X_TIME_H_ = 0
+ X_X86_64_BSWAP_H_ = 0
+ X_X86_64_CDEFS_H_ = 0
+ X_X86_64_TYPES_H_ = 0
+)
+
+// $NetBSD: idtype.h,v 1.5 2016/04/09 17:02:51 riastradh Exp $
+
+// -
+// Copyright (c) 2016 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Christos Zoulas.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// Using the solaris constants, some of them are not applicable to us
+// Do not re-order the list, or add elements in the middle as this will
+// break the ABI of the system calls using this. We set a high private
+// maximum so that new values can be added in the future without
+// changing the width of the type.
+const ( /* idtype.h:41:1: */
+ P_MYID = -1 // Me/my process group
+ P_ALL = 0 // All processes.
+ P_PID = 1 // A process identifier.
+ P_LWPID = 2 // An LWP identifier.
+ P_PPID = 3 // A parent process identifier.
+ P_PGID = 4 // A process group identifier.
+ P_SID = 5 // A session identifier.
+ P_CID = 6 // A scheduling class identifier.
+ P_UID = 7 // A user identifier.
+ P_GID = 8 // A group identifier.
+ P_TASKID = 9 // A task identifier.
+ P_PROJID = 10 // A project identifier.
+ P_POOLID = 11 // A pool identifier.
+ P_ZONEID = 12 // A zone identifier.
+ P_CTID = 13 // A (process) contract identifier.
+ P_CPUID = 14 // CPU identifier.
+ P_PSETID = 15 // Processor set identifier.
+ X_P_MAXIDTYPE = 2147483647
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// return true if value 'a' fits in type 't'
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $NetBSD: common_int_types.h,v 1.1 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Joerg Sonnenberger.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// 7.18.1 Integer types
+
+// 7.18.1.1 Exact-width integer types
+
+type X__int8_t = int8 /* common_int_types.h:45:27 */
+type X__uint8_t = uint8 /* common_int_types.h:46:27 */
+type X__int16_t = int16 /* common_int_types.h:47:27 */
+type X__uint16_t = uint16 /* common_int_types.h:48:27 */
+type X__int32_t = int32 /* common_int_types.h:49:27 */
+type X__uint32_t = uint32 /* common_int_types.h:50:27 */
+type X__int64_t = int64 /* common_int_types.h:51:27 */
+type X__uint64_t = uint64 /* common_int_types.h:52:27 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+type X__intptr_t = int64 /* common_int_types.h:58:27 */
+type X__uintptr_t = uint64 /* common_int_types.h:59:26 */
+
+type X__register_t = int64 /* types.h:68:19 */
+type X__cpu_simple_lock_nv_t = uint8 /* types.h:69:24 */
+
+// __cpu_simple_lock_t used to be a full word.
+
+// The amd64 does not have strict alignment requirements.
+
+// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $
+
+// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Matt Thomas of 3am Software Foundry.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// Types which are fundamental to the implementation and may appear in
+// more than one standard header are defined here. Standard headers
+// then use:
+// #ifdef _BSD_SIZE_T_
+// typedef _BSD_SIZE_T_ size_t;
+// #undef _BSD_SIZE_T_
+// #endif
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
+
+// -
+// Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Jun-ichiro itojun Hagino and by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $
+
+// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Matt Thomas of 3am Software Foundry.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+type X__caddr_t = uintptr /* ansi.h:37:14 */ // core address
+type X__gid_t = X__uint32_t /* ansi.h:38:20 */ // group id
+type X__in_addr_t = X__uint32_t /* ansi.h:39:20 */ // IP(v4) address
+type X__in_port_t = X__uint16_t /* ansi.h:40:20 */ // "Internet" port number
+type X__mode_t = X__uint32_t /* ansi.h:41:20 */ // file permissions
+type X__off_t = X__int64_t /* ansi.h:42:19 */ // file offset
+type X__pid_t = X__int32_t /* ansi.h:43:19 */ // process id
+type X__sa_family_t = X__uint8_t /* ansi.h:44:19 */ // socket address family
+type X__socklen_t = uint32 /* ansi.h:45:22 */ // socket-related datum length
+type X__uid_t = X__uint32_t /* ansi.h:46:20 */ // user id
+type X__fsblkcnt_t = X__uint64_t /* ansi.h:47:20 */ // fs block count (statvfs)
+type X__fsfilcnt_t = X__uint64_t /* ansi.h:48:20 */
+type X__wctrans_t = uintptr /* ansi.h:51:32 */
+type X__wctype_t = uintptr /* ansi.h:54:31 */
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__mbstateL X__int64_t
+ F__ccgo_pad1 [120]byte
+} /* ansi.h:63:3 */
+
+type X__va_list = X__builtin_va_list /* ansi.h:72:27 */
+
+type Int8_t = X__int8_t /* types.h:54:18 */
+
+type Uint8_t = X__uint8_t /* types.h:59:19 */
+
+type Int16_t = X__int16_t /* types.h:64:19 */
+
+type Uint16_t = X__uint16_t /* types.h:69:20 */
+
+type Int32_t = X__int32_t /* types.h:74:19 */
+
+type Uint32_t = X__uint32_t /* types.h:79:20 */
+
+type Int64_t = X__int64_t /* types.h:84:19 */
+
+type Uint64_t = X__uint64_t /* types.h:89:20 */
+
+type U_int8_t = Uint8_t /* types.h:93:18 */
+type U_int16_t = Uint16_t /* types.h:94:18 */
+type U_int32_t = Uint32_t /* types.h:95:18 */
+type U_int64_t = Uint64_t /* types.h:96:18 */
+
+// $NetBSD: endian.h,v 1.1 2003/04/26 18:39:40 fvdl Exp $
+
+// $NetBSD: endian.h,v 1.30 2016/02/27 21:37:35 christos Exp $
+
+// Copyright (c) 1987, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)endian.h 8.1 (Berkeley) 6/11/93
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// Definitions for byte order, according to byte significance from low
+// address to high.
+
+// C-family endian-ness definitions
+
+// $NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
+
+// -
+// Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Jun-ichiro itojun Hagino and by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: types.h,v 1.102 2018/11/06 16:26:44 maya Exp $
+
+// -
+// Copyright (c) 1982, 1986, 1991, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+type In_addr_t = X__in_addr_t /* endian.h:58:21 */
+
+type In_port_t = X__in_port_t /* endian.h:63:21 */
+
+// $NetBSD: bswap.h,v 1.19 2015/03/12 15:28:16 christos Exp $
+
+// Written by Manuel Bouyer. Public domain
+
+// $NetBSD: stdint.h,v 1.8 2018/11/06 16:26:44 maya Exp $
+
+// -
+// Copyright (c) 2001, 2004 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+type Intptr_t = X__intptr_t /* stdint.h:79:20 */
+
+type Uintptr_t = X__uintptr_t /* stdint.h:84:21 */
+
+// $NetBSD: int_mwgwtypes.h,v 1.8 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 2001 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: common_int_mwgwtypes.h,v 1.1 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Joerg Sonnenberger.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// 7.18.1 Integer types
+
+// 7.18.1.2 Minimum-width integer types
+
+type Int_least8_t = int8 /* common_int_mwgwtypes.h:45:32 */
+type Uint_least8_t = uint8 /* common_int_mwgwtypes.h:46:32 */
+type Int_least16_t = int16 /* common_int_mwgwtypes.h:47:32 */
+type Uint_least16_t = uint16 /* common_int_mwgwtypes.h:48:32 */
+type Int_least32_t = int32 /* common_int_mwgwtypes.h:49:32 */
+type Uint_least32_t = uint32 /* common_int_mwgwtypes.h:50:32 */
+type Int_least64_t = int64 /* common_int_mwgwtypes.h:51:32 */
+type Uint_least64_t = uint64 /* common_int_mwgwtypes.h:52:32 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type Int_fast8_t = int32 /* common_int_mwgwtypes.h:55:32 */
+type Uint_fast8_t = uint32 /* common_int_mwgwtypes.h:56:32 */
+type Int_fast16_t = int32 /* common_int_mwgwtypes.h:57:32 */
+type Uint_fast16_t = uint32 /* common_int_mwgwtypes.h:58:32 */
+type Int_fast32_t = int32 /* common_int_mwgwtypes.h:59:32 */
+type Uint_fast32_t = uint32 /* common_int_mwgwtypes.h:60:32 */
+type Int_fast64_t = int64 /* common_int_mwgwtypes.h:61:32 */
+type Uint_fast64_t = uint64 /* common_int_mwgwtypes.h:62:32 */
+
+// 7.18.1.5 Greatest-width integer types
+
+type Intmax_t = int64 /* common_int_mwgwtypes.h:66:33 */
+type Uintmax_t = uint64 /* common_int_mwgwtypes.h:67:32 */
+
+type U_char = uint8 /* types.h:101:23 */
+type U_short = uint16 /* types.h:102:24 */
+type U_int = uint32 /* types.h:103:22 */
+type U_long = uint64 /* types.h:104:23 */
+
+type Unchar = uint8 /* types.h:106:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:107:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:108:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:109:23 */ // Sys V compatibility
+
+type U_quad_t = Uint64_t /* types.h:112:18 */ // quads
+type Quad_t = Int64_t /* types.h:113:18 */
+type Qaddr_t = uintptr /* types.h:114:16 */
+
+// The types longlong_t and u_longlong_t exist for use with the
+// Sun-derived XDR routines involving these types, and their usage
+// in other contexts is discouraged. Further note that these types
+// may not be equivalent to "long long" and "unsigned long long",
+// they are only guaranteed to be signed and unsigned 64-bit types
+// respectively. Portable programs that need 64-bit types should use
+// the C99 types int64_t and uint64_t instead.
+
+type Longlong_t = Int64_t /* types.h:126:18 */ // for XDR
+type U_longlong_t = Uint64_t /* types.h:127:18 */ // for XDR
+
+type Blkcnt_t = Int64_t /* types.h:129:18 */ // fs block count
+type Blksize_t = Int32_t /* types.h:130:18 */ // fs optimal block size
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:133:22 */ // fs block count (statvfs)
+
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:138:22 */ // fs file count
+
+// We don't and shouldn't use caddr_t in the kernel anymore
+type Caddr_t = X__caddr_t /* types.h:145:19 */ // core address
+
+type Daddr_t = Int64_t /* types.h:154:18 */ // disk address
+
+type Dev_t = Uint64_t /* types.h:157:18 */ // device number
+type Fixpt_t = Uint32_t /* types.h:158:18 */ // fixed point number
+
+type Gid_t = X__gid_t /* types.h:161:18 */ // group id
+
+type Id_t = Uint32_t /* types.h:165:18 */ // group id, process id or user id
+type Ino_t = Uint64_t /* types.h:166:18 */ // inode number
+type Key_t = int64 /* types.h:167:15 */ // IPC key (for Sys V IPC)
+
+type Mode_t = X__mode_t /* types.h:170:18 */ // permissions
+
+type Nlink_t = Uint32_t /* types.h:174:18 */ // link count
+
+type Off_t = X__off_t /* types.h:177:18 */ // file offset
+
+type Pid_t = X__pid_t /* types.h:182:18 */ // process id
+type Lwpid_t = Int32_t /* types.h:185:18 */ // LWP id
+type Rlim_t = Uint64_t /* types.h:186:18 */ // resource limit
+type Segsz_t = Int32_t /* types.h:187:18 */ // segment size
+type Swblk_t = Int32_t /* types.h:188:18 */ // swap offset
+
+type Uid_t = X__uid_t /* types.h:191:18 */ // user id
+
+type Mqd_t = int32 /* types.h:195:14 */
+
+type Cpuid_t = uint64 /* types.h:197:23 */
+
+type Psetid_t = int32 /* types.h:199:14 */
+
+type X__cpu_simple_lock_t = X__cpu_simple_lock_nv_t /* types.h:201:41 */
+
+// Major, minor numbers, dev_t's.
+type X__devmajor_t = Int32_t /* types.h:255:17 */
+type X__devminor_t = Int32_t /* types.h:255:31 */
+
+type Clock_t = uint32 /* types.h:268:24 */
+
+type Ssize_t = int64 /* types.h:284:24 */
+
+type Time_t = X__int64_t /* types.h:289:23 */
+
+type Clockid_t = int32 /* types.h:294:26 */
+
+type Timer_t = int32 /* types.h:299:24 */
+
+type Suseconds_t = int32 /* types.h:304:27 */
+
+type Useconds_t = uint32 /* types.h:309:26 */
+
+// $NetBSD: fd_set.h,v 1.7 2018/06/24 12:05:40 kamil Exp $
+
+// -
+// Copyright (c) 1992, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// Implementation dependent defines, hidden from user space.
+// POSIX does not specify them.
+
+type X__fd_mask = X__uint32_t /* fd_set.h:46:20 */
+
+// 32 = 2 ^ 5
+
+// Select uses bit fields of file descriptors. These macros manipulate
+// such bit fields. Note: FD_SETSIZE may be defined by the user.
+
+type Fd_set1 = struct{ Ffds_bits [8]X__fd_mask } /* fd_set.h:66:9 */
+
+// 32 = 2 ^ 5
+
+// Select uses bit fields of file descriptors. These macros manipulate
+// such bit fields. Note: FD_SETSIZE may be defined by the user.
+
+type Fd_set = Fd_set1 /* fd_set.h:68:3 */
+
+// Expose our internals if we are not required to hide them.
+
+type Kauth_cred_t = uintptr /* types.h:318:27 */
+
+type Pri_t = int32 /* types.h:320:13 */
+
+// $NetBSD: pthread_types.h,v 1.23 2017/09/09 23:21:45 kamil Exp $
+
+// -
+// Copyright (c) 2001, 2008 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Nathan J. Williams.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// We use the "pthread_spin_t" name internally; "pthread_spinlock_t" is the
+// POSIX spinlock object.
+//
+// C++ expects to be using PTHREAD_FOO_INITIALIZER as a member initializer.
+// This does not work for volatile types. Since C++ does not touch the guts
+// of those types, we do not include volatile in the C++ definitions.
+type Pthread_spin_t = X__cpu_simple_lock_t /* pthread_types.h:43:29 */
+type X__pthread_spin_t = Pthread_spin_t /* pthread_types.h:48:24 */
+
+// Copied from PTQ_HEAD in pthread_queue.h
+
+type Pthread_queue_struct_t = struct {
+ Fptqh_first uintptr
+ Fptqh_last uintptr
+} /* pthread_types.h:61:1 */
+
+type Pthread_queue_t = Pthread_queue_struct_t /* pthread_types.h:62:39 */
+type X__pthread_attr_st = struct {
+ Fpta_magic uint32
+ Fpta_flags int32
+ Fpta_private uintptr
+} /* pthread_types.h:65:1 */
+
+type X__pthread_mutex_st = struct {
+ Fptm_magic uint32
+ Fptm_errorcheck X__pthread_spin_t
+ Fptm_pad1 [3]Uint8_t
+ F__8 struct{ Fptm_ceiling uint8 }
+ Fptm_pad2 [3]Uint8_t
+ F__ccgo_pad1 [4]byte
+ Fptm_owner Pthread_t
+ Fptm_waiters uintptr
+ Fptm_recursed uint32
+ F__ccgo_pad2 [4]byte
+ Fptm_spare2 uintptr
+} /* pthread_types.h:66:1 */
+
+type X__pthread_mutexattr_st = struct {
+ Fptma_magic uint32
+ F__ccgo_pad1 [4]byte
+ Fptma_private uintptr
+} /* pthread_types.h:67:1 */
+
+type X__pthread_cond_st = struct {
+ Fptc_magic uint32
+ Fptc_lock X__pthread_spin_t
+ F__ccgo_pad1 [3]byte
+ Fptc_waiters Pthread_queue_t
+ Fptc_mutex uintptr
+ Fptc_private uintptr
+} /* pthread_types.h:68:1 */
+
+type X__pthread_condattr_st = struct {
+ Fptca_magic uint32
+ F__ccgo_pad1 [4]byte
+ Fptca_private uintptr
+} /* pthread_types.h:69:1 */
+
+type X__pthread_rwlock_st = struct {
+ Fptr_magic uint32
+ Fptr_interlock X__pthread_spin_t
+ F__ccgo_pad1 [3]byte
+ Fptr_rblocked Pthread_queue_t
+ Fptr_wblocked Pthread_queue_t
+ Fptr_nreaders uint32
+ F__ccgo_pad2 [4]byte
+ Fptr_owner Pthread_t
+ Fptr_private uintptr
+} /* pthread_types.h:71:1 */
+
+type X__pthread_rwlockattr_st = struct {
+ Fptra_magic uint32
+ F__ccgo_pad1 [4]byte
+ Fptra_private uintptr
+} /* pthread_types.h:72:1 */
+
+type X__pthread_barrier_st = struct {
+ Fptb_magic uint32
+ Fptb_lock Pthread_spin_t
+ F__ccgo_pad1 [3]byte
+ Fptb_waiters Pthread_queue_t
+ Fptb_initcount uint32
+ Fptb_curcount uint32
+ Fptb_generation uint32
+ F__ccgo_pad2 [4]byte
+ Fptb_private uintptr
+} /* pthread_types.h:73:1 */
+
+type X__pthread_barrierattr_st = struct {
+ Fptba_magic uint32
+ F__ccgo_pad1 [4]byte
+ Fptba_private uintptr
+} /* pthread_types.h:74:1 */
+
+type Pthread_t = uintptr /* pthread_types.h:76:29 */
+type Pthread_attr_t = X__pthread_attr_st /* pthread_types.h:77:34 */
+type Pthread_mutex_t = X__pthread_mutex_st /* pthread_types.h:78:35 */
+type Pthread_mutexattr_t = X__pthread_mutexattr_st /* pthread_types.h:79:39 */
+type Pthread_cond_t = X__pthread_cond_st /* pthread_types.h:80:34 */
+type Pthread_condattr_t = X__pthread_condattr_st /* pthread_types.h:81:38 */
+type X__pthread_once_st = struct {
+ Fpto_mutex Pthread_mutex_t
+ Fpto_done int32
+ F__ccgo_pad1 [4]byte
+} /* pthread_types.h:82:9 */
+
+type Pthread_once_t = X__pthread_once_st /* pthread_types.h:82:34 */
+type X__pthread_spinlock_st = struct {
+ Fpts_magic uint32
+ Fpts_spin X__pthread_spin_t
+ F__ccgo_pad1 [3]byte
+ Fpts_flags int32
+} /* pthread_types.h:83:9 */
+
+type Pthread_spinlock_t = X__pthread_spinlock_st /* pthread_types.h:83:38 */
+type Pthread_rwlock_t = X__pthread_rwlock_st /* pthread_types.h:84:36 */
+type Pthread_rwlockattr_t = X__pthread_rwlockattr_st /* pthread_types.h:85:40 */
+type Pthread_barrier_t = X__pthread_barrier_st /* pthread_types.h:86:37 */
+type Pthread_barrierattr_t = X__pthread_barrierattr_st /* pthread_types.h:87:41 */
+type Pthread_key_t = int32 /* pthread_types.h:88:13 */
+
+// POSIX:2008 / XPG7 requires struct timespec to be declared in
+// this header, but does not provide the usual exemption
+// "inclusion of this header may make visible symbols defined in <time.h>".
+//
+// This is a Standard omission, acknowledged by the committee and
+// scheduled to be corrected in Technical Corrigendum 2, according to
+// http://austingroupbugs.net/view.php?id=531
+// $NetBSD: time.h,v 1.79 2017/01/17 15:28:34 maya Exp $
+
+// Copyright (c) 1982, 1986, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)time.h 8.5 (Berkeley) 5/4/95
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// $NetBSD: types.h,v 1.102 2018/11/06 16:26:44 maya Exp $
+
+// -
+// Copyright (c) 1982, 1986, 1991, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// Structure returned by gettimeofday(2) system call,
+// and used in other calls.
+type Timeval = struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ F__ccgo_pad1 [4]byte
+} /* time.h:44:1 */
+
+// $NetBSD: timespec.h,v 1.1 2015/07/31 12:51:32 kamil Exp $
+
+// Copyright (c) 1982, 1986, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)time.h 8.5 (Berkeley) 5/4/95
+//
+// Extracted by Kamil Rytarowski from:
+// NetBSD: src/sys/sys/time.h,v 1.69 2015/05/19 23:35:11 riastradh Exp
+
+// $NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
+
+// -
+// Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Jun-ichiro itojun Hagino and by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+type Timespec = struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+} /* timespec.h:47:1 */
+
+// Note: timezone is obsolete. All timezone handling is now in
+// userland. Its just here for back compatibility.
+type Timezone = struct {
+ Ftz_minuteswest int32
+ Ftz_dsttime int32
+} /* time.h:65:1 */
+
+// Operations on timevals.
+
+// hide bintime for _STANDALONE because this header is used for hpcboot.exe,
+// which is built with compilers which don't recognize LL suffix.
+// http://mail-index.NetBSD.org/tech-userlevel/2008/02/27/msg000181.html
+type Bintime = struct {
+ Fsec Time_t
+ Ffrac Uint64_t
+} /* time.h:102:1 */
+
+// Operations on timespecs.
+
+// Names of the interval timers, and structure
+// defining a timer setting.
+// NB: Must match the CLOCK_ constants below.
+
+type Itimerval = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_usec Suseconds_t
+ F__ccgo_pad1 [4]byte
+ }
+} /* time.h:280:1 */
+
+// Structure defined by POSIX.1b to be like a itimerval, but with
+// timespecs. Used in the timer_*() system calls.
+type Itimerspec = struct {
+ Fit_interval struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+ }
+ Fit_value struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+ }
+} /* time.h:289:1 */
+
+// $NetBSD: select.h,v 1.37 2014/04/25 15:52:45 pooka Exp $
+
+// -
+// Copyright (c) 1992, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)select.h 8.2 (Berkeley) 1/4/94
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// $NetBSD: fd_set.h,v 1.7 2018/06/24 12:05:40 kamil Exp $
+
+// -
+// Copyright (c) 1992, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $NetBSD: sigtypes.h,v 1.11 2017/01/12 18:29:14 christos Exp $
+
+// Copyright (c) 1982, 1986, 1989, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)signal.h 8.4 (Berkeley) 5/4/95
+
+// This header file defines various signal-related types. We also keep
+// the macros to manipulate sigset_t here, to encapsulate knowledge of
+// its internals.
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $
+
+// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Matt Thomas of 3am Software Foundry.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+type Sigset_t = struct{ F__bits [4]X__uint32_t } /* sigtypes.h:62:3 */
+
+// Macro for manipulating signal masks.
+
+type Sigaltstack = struct {
+ Fss_sp uintptr
+ Fss_size Size_t
+ Fss_flags int32
+ F__ccgo_pad1 [4]byte
+} /* sigtypes.h:108:9 */
+
+// Macro for manipulating signal masks.
+
+type Stack_t = Sigaltstack /* sigtypes.h:116:3 */
+
+// $NetBSD: time.h,v 1.47 2016/10/04 09:41:41 kamil Exp $
+
+// Copyright (c) 1989, 1993
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)time.h 8.3 (Berkeley) 1/21/94
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $
+
+// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Matt Thomas of 3am Software Foundry.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: null.h,v 1.9 2010/07/06 11:56:20 kleink Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, December 22, 1999.
+// Public domain.
+
+type Tm = struct {
+ Ftm_sec int32
+ Ftm_min int32
+ Ftm_hour int32
+ Ftm_mday int32
+ Ftm_mon int32
+ Ftm_year int32
+ Ftm_wday int32
+ Ftm_yday int32
+ Ftm_isdst int32
+ F__ccgo_pad1 [4]byte
+ Ftm_gmtoff int64
+ Ftm_zone uintptr
+} /* time.h:75:1 */
+
+// $NetBSD: idtype.h,v 1.5 2016/04/09 17:02:51 riastradh Exp $
+
+// -
+// Copyright (c) 2016 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Christos Zoulas.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// Using the solaris constants, some of them are not applicable to us
+// Do not re-order the list, or add elements in the middle as this will
+// break the ABI of the system calls using this. We set a high private
+// maximum so that new values can be added in the future without
+// changing the width of the type.
+type Idtype_t = int32 /* idtype.h:60:3 */
+
+type Locale_t = uintptr /* time.h:188:25 */
+
+type Timezone_t = uintptr /* time.h:198:24 */
+
+type Stat = struct {
+ Fst_dev Dev_t
+ Fst_mode X__mode_t
+ F__ccgo_pad1 [4]byte
+ Fst_ino Ino_t
+ Fst_nlink Nlink_t
+ Fst_uid X__uid_t
+ Fst_gid X__gid_t
+ F__ccgo_pad2 [4]byte
+ Fst_rdev Dev_t
+ Fst_atim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+ }
+ Fst_mtim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+ }
+ Fst_ctim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+ }
+ Fst_birthtim struct {
+ Ftv_sec Time_t
+ Ftv_nsec int64
+ }
+ Fst_size X__off_t
+ Fst_blocks Blkcnt_t
+ Fst_blksize Blksize_t
+ Fst_flags Uint32_t
+ Fst_gen Uint32_t
+ Fst_spare [2]Uint32_t
+ F__ccgo_pad3 [4]byte
+} /* stat.h:59:1 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_windows_386.go b/vendor/modernc.org/libc/sys/stat/stat_windows_386.go
index a0d65b22c..46b091f73 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_windows_386.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_windows_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_windows_386.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_windows_386.go -pkgname stat', DO NOT EDIT.
package stat
@@ -33,9 +33,7 @@ const (
DUMMYUNIONNAME9 = 0
F_OK = 0
MINGW_DDK_H = 0
- MINGW_DDRAW_VERSION = 7
MINGW_HAS_DDK_H = 1
- MINGW_HAS_DDRAW_H = 1
MINGW_HAS_SECURE_API = 1
MINGW_SDK_INIT = 0
R_OK = 4
@@ -89,6 +87,7 @@ const (
X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0
X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0
X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0
+ X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0
X_DEV_T_DEFINED = 0
X_DLL = 0
X_ERRCODE_DEFINED = 0
@@ -97,6 +96,8 @@ const (
X_FILE_OFFSET_BITS_SET_OFFT = 0
X_FINDDATA_T_DEFINED = 0
X_FSIZE_T_DEFINED = 0
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
X_INC_CRTDEFS = 0
X_INC_CRTDEFS_MACRO = 0
X_INC_MINGW_SECAPI = 0
@@ -198,6 +199,11 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */
// This file is part of the mingw-w64 runtime package.
// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+// *
+// This file has no copyright assigned and is placed in the Public Domain.
+// This file is part of the mingw-w64 runtime package.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
// This macro holds an monotonic increasing value, which indicates
// a specific fix/patch is present on trunk. This value isn't related to
// minor/major version-macros. It is increased on demand, if a big
@@ -218,6 +224,12 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */
// MinGW-w64 has some additional C99 printf/scanf feature support.
// So we add some helper macros to ease recognition of them.
+// If _FORTIFY_SOURCE is enabled, some inline functions may use
+// __builtin_va_arg_pack(). GCC may report an error if the address
+// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case.
+
+// Enable workaround for ABI incompatibility on affected platforms
+
// *
// This file has no copyright assigned and is placed in the Public Domain.
// This file is part of the mingw-w64 runtime package.
@@ -258,26 +270,28 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */
// This file is part of the mingw-w64 runtime package.
// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+// for backward compatibility
+
type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
-type Ssize_t = int32 /* crtdefs.h:47:13 */
+type Ssize_t = int32 /* corecrt.h:52:13 */
-type Rsize_t = Size_t /* crtdefs.h:52:16 */
+type Rsize_t = Size_t /* corecrt.h:57:16 */
-type Intptr_t = int32 /* crtdefs.h:64:13 */
+type Intptr_t = int32 /* corecrt.h:69:13 */
-type Uintptr_t = uint32 /* crtdefs.h:77:22 */
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
-type Wint_t = uint16 /* crtdefs.h:106:24 */
-type Wctype_t = uint16 /* crtdefs.h:107:24 */
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
-type Errno_t = int32 /* crtdefs.h:113:13 */
+type Errno_t = int32 /* corecrt.h:118:13 */
-type X__time32_t = int32 /* crtdefs.h:118:14 */
+type X__time32_t = int32 /* corecrt.h:123:14 */
-type X__time64_t = int64 /* crtdefs.h:123:35 */
+type X__time64_t = int64 /* corecrt.h:128:35 */
-type Time_t = X__time32_t /* crtdefs.h:136:20 */
+type Time_t = X__time32_t /* corecrt.h:141:20 */
type Threadlocaleinfostruct = struct {
Frefcount int32
@@ -303,29 +317,29 @@ type Threadlocaleinfostruct = struct {
Fpclmap uintptr
Fpcumap uintptr
Flc_time_curr uintptr
-} /* crtdefs.h:422:1 */
+} /* corecrt.h:435:1 */
-type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
-type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
type Localeinfo_struct = struct {
Flocinfo Pthreadlocinfo
Fmbcinfo Pthreadmbcinfo
-} /* crtdefs.h:428:9 */
+} /* corecrt.h:441:9 */
-type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
-type X_locale_t = uintptr /* crtdefs.h:431:19 */
+type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */
+type X_locale_t = uintptr /* corecrt.h:444:19 */
type TagLC_ID = struct {
FwLanguage uint16
FwCountry uint16
FwCodePage uint16
-} /* crtdefs.h:422:1 */
+} /* corecrt.h:435:1 */
-type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
-type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
-type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
type X_fsize_t = uint32 /* io.h:29:25 */
type X_finddata32_t = struct {
@@ -344,12 +358,12 @@ type X_finddata32i64_t = struct {
Ftime_write X__time32_t
Fsize int64
Fname [260]int8
- _ [4]byte
+ F__ccgo_pad1 [4]byte
} /* io.h:44:3 */
type X_finddata64i32_t = struct {
Fattrib uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Ftime_create X__time64_t
Ftime_access X__time64_t
Ftime_write X__time64_t
@@ -359,13 +373,13 @@ type X_finddata64i32_t = struct {
type X__finddata64_t = struct {
Fattrib uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Ftime_create X__time64_t
Ftime_access X__time64_t
Ftime_write X__time64_t
Fsize int64
Fname [260]int8
- _ [4]byte
+ F__ccgo_pad2 [4]byte
} /* io.h:62:3 */
type X_wfinddata32_t = struct {
@@ -388,18 +402,18 @@ type X_wfinddata32i64_t = struct {
type X_wfinddata64i32_t = struct {
Fattrib uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Ftime_create X__time64_t
Ftime_access X__time64_t
Ftime_write X__time64_t
Fsize X_fsize_t
Fname [260]Wchar_t
- _ [4]byte
+ F__ccgo_pad2 [4]byte
} /* io.h:112:3 */
type X_wfinddata64_t = struct {
Fattrib uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Ftime_create X__time64_t
Ftime_access X__time64_t
Ftime_write X__time64_t
@@ -460,81 +474,81 @@ type Itimerspec = struct {
type X_sigset_t = uint32 /* types.h:106:23 */
type X_stat32 = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- Fst_size X_off_t
- Fst_atime X__time32_t
- Fst_mtime X__time32_t
- Fst_ctime X__time32_t
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ Fst_size X_off_t
+ Fst_atime X__time32_t
+ Fst_mtime X__time32_t
+ Fst_ctime X__time32_t
} /* _mingw_stat64.h:25:3 */
type Stat = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- Fst_size X_off_t
- Fst_atime Time_t
- Fst_mtime Time_t
- Fst_ctime Time_t
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ Fst_size X_off_t
+ Fst_atime Time_t
+ Fst_mtime Time_t
+ Fst_ctime Time_t
} /* _mingw_stat64.h:40:3 */
type X_stati64 = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- _ [4]byte
- Fst_size int64
- Fst_atime X__time32_t
- Fst_mtime X__time32_t
- Fst_ctime X__time32_t
- _ [4]byte
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ F__ccgo_pad2 [4]byte
+ Fst_size int64
+ Fst_atime X__time32_t
+ Fst_mtime X__time32_t
+ Fst_ctime X__time32_t
+ F__ccgo_pad3 [4]byte
} /* _mingw_stat64.h:55:3 */
type X_stat64i32 = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- Fst_size X_off_t
- Fst_atime X__time64_t
- Fst_mtime X__time64_t
- Fst_ctime X__time64_t
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ Fst_size X_off_t
+ Fst_atime X__time64_t
+ Fst_mtime X__time64_t
+ Fst_ctime X__time64_t
} /* _mingw_stat64.h:69:3 */
type X_stat64 = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- _ [4]byte
- Fst_size int64
- Fst_atime X__time64_t
- Fst_mtime X__time64_t
- Fst_ctime X__time64_t
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ F__ccgo_pad2 [4]byte
+ Fst_size int64
+ Fst_atime X__time64_t
+ Fst_mtime X__time64_t
+ Fst_ctime X__time64_t
} /* _mingw_stat64.h:83:3 */
var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/stat/stat_windows_amd64.go b/vendor/modernc.org/libc/sys/stat/stat_windows_amd64.go
index 31aec504c..9756b48a8 100644
--- a/vendor/modernc.org/libc/sys/stat/stat_windows_amd64.go
+++ b/vendor/modernc.org/libc/sys/stat/stat_windows_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/stat/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_windows_amd64.go -pkgname stat', DO NOT EDIT.
+// Code generated by 'ccgo sys\stat\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys\stat\stat_windows_amd64.go -pkgname stat', DO NOT EDIT.
package stat
@@ -125,6 +125,7 @@ const (
X_PID_T_ = 0
X_PTRDIFF_T_ = 0
X_PTRDIFF_T_DEFINED = 0
+ X_REENTRANT = 1
X_RSIZE_T_DEFINED = 0
X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
X_SIGSET_T_ = 0
@@ -356,12 +357,12 @@ type X_finddata32i64_t = struct {
Ftime_write X__time32_t
Fsize int64
Fname [260]int8
- _ [4]byte
+ F__ccgo_pad1 [4]byte
} /* io.h:44:3 */
type X_finddata64i32_t = struct {
Fattrib uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Ftime_create X__time64_t
Ftime_access X__time64_t
Ftime_write X__time64_t
@@ -371,13 +372,13 @@ type X_finddata64i32_t = struct {
type X__finddata64_t = struct {
Fattrib uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Ftime_create X__time64_t
Ftime_access X__time64_t
Ftime_write X__time64_t
Fsize int64
Fname [260]int8
- _ [4]byte
+ F__ccgo_pad2 [4]byte
} /* io.h:62:3 */
type X_wfinddata32_t = struct {
@@ -400,18 +401,18 @@ type X_wfinddata32i64_t = struct {
type X_wfinddata64i32_t = struct {
Fattrib uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Ftime_create X__time64_t
Ftime_access X__time64_t
Ftime_write X__time64_t
Fsize X_fsize_t
Fname [260]Wchar_t
- _ [4]byte
+ F__ccgo_pad2 [4]byte
} /* io.h:112:3 */
type X_wfinddata64_t = struct {
Fattrib uint32
- _ [4]byte
+ F__ccgo_pad1 [4]byte
Ftime_create X__time64_t
Ftime_access X__time64_t
Ftime_write X__time64_t
@@ -454,102 +455,102 @@ type Mode_t = X_mode_t /* types.h:77:17 */
type Useconds_t = uint32 /* types.h:84:22 */
type Timespec = struct {
- Ftv_sec Time_t
- Ftv_nsec int32
- _ [4]byte
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
} /* types.h:89:1 */
type Itimerspec = struct {
Fit_interval struct {
- Ftv_sec Time_t
- Ftv_nsec int32
- _ [4]byte
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
}
Fit_value struct {
- Ftv_sec Time_t
- Ftv_nsec int32
- _ [4]byte
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
}
} /* types.h:94:1 */
type X_sigset_t = uint64 /* types.h:104:28 */
type X_stat32 = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- Fst_size X_off_t
- Fst_atime X__time32_t
- Fst_mtime X__time32_t
- Fst_ctime X__time32_t
-} /* _mingw_stat64.h:25:3 */
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ Fst_size X_off_t
+ Fst_atime X__time32_t
+ Fst_mtime X__time32_t
+ Fst_ctime X__time32_t
+} /* _mingw_stat64.h:28:3 */
type Stat = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- Fst_size X_off_t
- Fst_atime Time_t
- Fst_mtime Time_t
- Fst_ctime Time_t
-} /* _mingw_stat64.h:40:3 */
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ Fst_size X_off_t
+ Fst_atime Time_t
+ Fst_mtime Time_t
+ Fst_ctime Time_t
+} /* _mingw_stat64.h:43:3 */
type X_stat32i64 = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- _ [4]byte
- Fst_size int64
- Fst_atime X__time32_t
- Fst_mtime X__time32_t
- Fst_ctime X__time32_t
- _ [4]byte
-} /* _mingw_stat64.h:55:3 */
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ F__ccgo_pad2 [4]byte
+ Fst_size int64
+ Fst_atime X__time32_t
+ Fst_mtime X__time32_t
+ Fst_ctime X__time32_t
+ F__ccgo_pad3 [4]byte
+} /* _mingw_stat64.h:58:3 */
type X_stat64i32 = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- Fst_size X_off_t
- Fst_atime X__time64_t
- Fst_mtime X__time64_t
- Fst_ctime X__time64_t
-} /* _mingw_stat64.h:69:3 */
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ Fst_size X_off_t
+ Fst_atime X__time64_t
+ Fst_mtime X__time64_t
+ Fst_ctime X__time64_t
+} /* _mingw_stat64.h:72:3 */
type X_stat64 = struct {
- Fst_dev X_dev_t
- Fst_ino X_ino_t
- Fst_mode uint16
- Fst_nlink int16
- Fst_uid int16
- Fst_gid int16
- _ [2]byte
- Fst_rdev X_dev_t
- _ [4]byte
- Fst_size int64
- Fst_atime X__time64_t
- Fst_mtime X__time64_t
- Fst_ctime X__time64_t
-} /* _mingw_stat64.h:83:3 */
+ Fst_dev X_dev_t
+ Fst_ino X_ino_t
+ Fst_mode uint16
+ Fst_nlink int16
+ Fst_uid int16
+ Fst_gid int16
+ F__ccgo_pad1 [2]byte
+ Fst_rdev X_dev_t
+ F__ccgo_pad2 [4]byte
+ Fst_size int64
+ Fst_atime X__time64_t
+ Fst_mtime X__time64_t
+ Fst_ctime X__time64_t
+} /* _mingw_stat64.h:86:3 */
var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go b/vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go
index edc728ec5..7d05a9e0a 100644
--- a/vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go
+++ b/vendor/modernc.org/libc/sys/types/capi_darwin_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_darwin_amd64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_darwin_amd64.go -pkgname types', DO NOT EDIT.
package types
diff --git a/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go b/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go
index cb879d802..96cf0022e 100644
--- a/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go
+++ b/vendor/modernc.org/libc/sys/types/capi_darwin_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_darwin_arm64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_darwin_arm64.go -pkgname types', DO NOT EDIT.
package types
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_386.go b/vendor/modernc.org/libc/sys/types/capi_linux_386.go
index 479f6eeba..026dff4ae 100644
--- a/vendor/modernc.org/libc/sys/types/capi_linux_386.go
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_386.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_386.go -pkgname types', DO NOT EDIT.
package types
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_amd64.go b/vendor/modernc.org/libc/sys/types/capi_linux_amd64.go
index 136e5ea16..bc337eed0 100644
--- a/vendor/modernc.org/libc/sys/types/capi_linux_amd64.go
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_amd64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_amd64.go -pkgname types', DO NOT EDIT.
package types
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_arm.go b/vendor/modernc.org/libc/sys/types/capi_linux_arm.go
index 77b2df793..c64f386ee 100644
--- a/vendor/modernc.org/libc/sys/types/capi_linux_arm.go
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_arm.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_arm.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_arm.go -pkgname types', DO NOT EDIT.
package types
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_arm64.go b/vendor/modernc.org/libc/sys/types/capi_linux_arm64.go
index 5d51feec3..4ec64ab50 100644
--- a/vendor/modernc.org/libc/sys/types/capi_linux_arm64.go
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_arm64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_arm64.go -pkgname types', DO NOT EDIT.
package types
diff --git a/vendor/modernc.org/libc/sys/types/capi_linux_s390x.go b/vendor/modernc.org/libc/sys/types/capi_linux_s390x.go
index 3a8d26c63..90fa54bab 100644
--- a/vendor/modernc.org/libc/sys/types/capi_linux_s390x.go
+++ b/vendor/modernc.org/libc/sys/types/capi_linux_s390x.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_s390x.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_s390x.go -pkgname types', DO NOT EDIT.
package types
diff --git a/vendor/modernc.org/libc/sys/types/capi_netbsd_amd64.go b/vendor/modernc.org/libc/sys/types/capi_netbsd_amd64.go
new file mode 100644
index 000000000..9164103d4
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/capi_netbsd_amd64.go
@@ -0,0 +1,5 @@
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_netbsd_amd64.go -pkgname types', DO NOT EDIT.
+
+package types
+
+var CAPI = map[string]struct{}{}
diff --git a/vendor/modernc.org/libc/sys/types/capi_windows_386.go b/vendor/modernc.org/libc/sys/types/capi_windows_386.go
index 1456be781..d09a4ea4d 100644
--- a/vendor/modernc.org/libc/sys/types/capi_windows_386.go
+++ b/vendor/modernc.org/libc/sys/types/capi_windows_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_windows_386.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_windows_386.go -pkgname types', DO NOT EDIT.
package types
diff --git a/vendor/modernc.org/libc/sys/types/capi_windows_amd64.go b/vendor/modernc.org/libc/sys/types/capi_windows_amd64.go
index 85d075077..b044a7078 100644
--- a/vendor/modernc.org/libc/sys/types/capi_windows_amd64.go
+++ b/vendor/modernc.org/libc/sys/types/capi_windows_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_windows_amd64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys\types\gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys\types\types_windows_amd64.go -pkgname types', DO NOT EDIT.
package types
diff --git a/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go b/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go
index 0300fe099..0ba897784 100644
--- a/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go
+++ b/vendor/modernc.org/libc/sys/types/types_darwin_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_darwin_amd64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_darwin_amd64.go -pkgname types', DO NOT EDIT.
package types
@@ -707,8 +707,8 @@ type X__darwin_ct_rune_t = int32 /* _types.h:70:33 */ // ct_rune_t
// mbstate_t is an opaque object to keep conversion state, during multibyte
// stream conversions. The content must not be referenced by user programs.
type X__mbstate_t = struct {
- _ [0]uint64
- F__mbstate8 [128]int8
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
} /* _types.h:79:3 */
type X__darwin_mbstate_t = X__mbstate_t /* _types.h:81:33 */ // mbstate_t
diff --git a/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go b/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go
index f54e977ff..728fd0893 100644
--- a/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go
+++ b/vendor/modernc.org/libc/sys/types/types_darwin_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_darwin_arm64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_darwin_arm64.go -pkgname types', DO NOT EDIT.
package types
@@ -3675,7 +3675,7 @@ type Errno_t = int32 /* _errno_t.h:30:32 */
// Evaluate to nothing for compilers that don't support availability.
// Swift compiler version
-// Allows for project-agnostic “epochs” for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
// Example:
//
// #if __swift_compiler_version_at_least(800, 2, 20)
@@ -3977,7 +3977,7 @@ type Fd_set1 = struct{ Ffds_bits [32]X__int32_t } /* _fd_def.h:50:9 */
// Evaluate to nothing for compilers that don't support availability.
// Swift compiler version
-// Allows for project-agnostic “epochs” for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
+// Allows for project-agnostic "epochs" for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift
// Example:
//
// #if __swift_compiler_version_at_least(800, 2, 20)
diff --git a/vendor/modernc.org/libc/sys/types/types_freebsd_amd64.go b/vendor/modernc.org/libc/sys/types/types_freebsd_amd64.go
index 348cc4e69..dcec77785 100644
--- a/vendor/modernc.org/libc/sys/types/types_freebsd_amd64.go
+++ b/vendor/modernc.org/libc/sys/types/types_freebsd_amd64.go
@@ -727,8 +727,8 @@ type X__fixpt_t = X__uint32_t /* _types.h:115:20 */ // fixed point number
// mbstate_t is an opaque object to keep conversion state during multibyte
// stream conversions.
type X__mbstate_t = struct {
- _ [0]uint64
- F__mbstate8 [128]int8
+ F__ccgo_pad1 [0]uint64
+ F__mbstate8 [128]int8
} /* _types.h:124:3 */
type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
@@ -738,9 +738,9 @@ type X__rman_res_t = X__uintmax_t /* _types.h:126:25 */
type X__va_list = X__builtin_va_list /* _types.h:133:27 */ // internally known to gcc
type X__gnuc_va_list = X__va_list /* _types.h:140:20 */
type Pthread_once = struct {
- Fstate int32
- _ [4]byte
- Fmutex Pthread_mutex_t
+ Fstate int32
+ F__ccgo_pad1 [4]byte
+ Fmutex Pthread_mutex_t
} /* _pthreadtypes.h:52:1 */
// Primitive system data type definitions required by P1003.1c.
diff --git a/vendor/modernc.org/libc/sys/types/types_linux_386.go b/vendor/modernc.org/libc/sys/types/types_linux_386.go
index a8b201cf7..98949f0a1 100644
--- a/vendor/modernc.org/libc/sys/types/types_linux_386.go
+++ b/vendor/modernc.org/libc/sys/types/types_linux_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_386.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_386.go -pkgname types', DO NOT EDIT.
package types
@@ -22,9 +22,12 @@ const (
PDP_ENDIAN = 3412
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -35,8 +38,10 @@ const (
X_FEATURES_H = 1
X_FILE_OFFSET_BITS = 64
X_GCC_SIZE_T = 0
+ X_ILP32 = 1
X_POSIX_C_SOURCE = 200809
X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
X_SIZET_ = 0
X_SIZE_T = 0
X_SIZE_T_ = 0
@@ -49,6 +54,7 @@ const (
X_SYS_SELECT_H = 1
X_SYS_SIZE_T_H = 0
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -66,7 +72,7 @@ type Wchar_t = int32 /* <builtin>:15:24 */
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -81,11 +87,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -100,7 +106,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -108,6 +114,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -228,6 +235,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -250,9 +259,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -267,7 +289,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -280,7 +302,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -295,7 +317,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -410,7 +432,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -431,10 +453,14 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
// Determine the wordsize from the preprocessor defines.
// Properties of long double type. ldbl-96 version.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -449,7 +475,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// long double is distinct from double, so there is nothing to
// define here.
@@ -487,7 +513,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -502,11 +528,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -521,43 +547,63 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
+// Bit size of the time_t type at glibc build time, x86-64 and x32 case.
+// Copyright (C) 2018-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/>.
+
+// For others, time size is word size.
+
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint32 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint32 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:46:44 */
-type X__uint64_t = uint64 /* types.h:47:46 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+type X__int64_t = int64 /* types.h:47:44 */
+type X__uint64_t = uint64 /* types.h:48:46 */
// Smallest types with at least a given width.
-type X__int_least8_t = X__int8_t /* types.h:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:65:37 */
-type X__u_quad_t = uint64 /* types.h:66:46 */
+type X__quad_t = int64 /* types.h:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:74:37 */
-type X__uintmax_t = uint64 /* types.h:75:46 */
+type X__intmax_t = int64 /* types.h:75:37 */
+type X__uintmax_t = uint64 /* types.h:76:46 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -569,7 +615,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -591,7 +637,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// We want __extension__ before typedef's that use nonstandard base types
// such as `long long' in C89 mode.
// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
-// Copyright (C) 2012-2018 Free Software Foundation, Inc.
+// Copyright (C) 2012-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
@@ -606,7 +652,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
//
// 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/>.
+// <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.
@@ -615,76 +661,103 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = X__u_quad_t /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint32 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = X__u_quad_t /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint32 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int32 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = X__quad_t /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int32 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint32 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = X__u_quad_t /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int32 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int32 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// Define a 64-bit time type alongsize the 32-bit one.
+
+type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers.
+type X__ino64_t = X__uint64_t /* 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 = uint32 /* types.h:151:27 */ // Type of file link counts.
+type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets.
+type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
+type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch.
+type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
+type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds.
+
+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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int32 /* types.h:172:29 */
+type X__blksize_t = int32 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int32 /* types.h:177:28 */
-type X__blkcnt64_t = X__quad_t /* types.h:178:30 */
+type X__blkcnt_t = int32 /* types.h:179:28 */
+type X__blkcnt64_t = X__int64_t /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint32 /* types.h:181:30 */
-type X__fsblkcnt64_t = X__u_quad_t /* types.h:182:32 */
+type X__fsblkcnt_t = uint32 /* types.h:183:30 */
+type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint32 /* types.h:185:30 */
-type X__fsfilcnt64_t = X__u_quad_t /* types.h:186:32 */
+type X__fsfilcnt_t = uint32 /* types.h:187:30 */
+type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int32 /* types.h:189:28 */
+type X__fsword_t = int32 /* types.h:191:28 */
-type X__ssize_t = int32 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int32 /* types.h:194:33 */
+type X__syscall_slong_t = int32 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint32 /* types.h:196:33 */
+type X__syscall_ulong_t = uint32 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int32 /* types.h:204:25 */
+type X__intptr_t = int32 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 X__time64_t = X__int64_t /* types.h:222:28 */
type U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -721,7 +794,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -736,7 +809,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -744,7 +817,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -759,7 +832,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -767,7 +840,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -782,7 +855,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -790,7 +863,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -805,7 +878,7 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -820,11 +893,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -835,7 +903,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -850,10 +918,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -868,7 +936,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -877,18 +945,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
-
-type U_int8_t = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
+// 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 Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -903,11 +970,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -922,11 +989,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -941,12 +1008,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -961,7 +1028,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
@@ -975,7 +1042,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-2018 Free Software Foundation, Inc.
+// 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
@@ -990,7 +1057,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1004,7 +1071,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1019,16 +1086,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1048,16 +1133,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1072,11 +1157,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1091,7 +1176,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1106,36 +1191,6 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
-//
// The additional macro defines any constraint for the lock alignment
// inside the thread structures:
//
@@ -1144,11 +1199,40 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
+
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
+// This file is part of the GNU C Library.
//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
+// 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.
//
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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.
+
+// Extra attributes for the cleanup functions.
+
+// 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.
+
+// Now add the thread types.
+// Declaration of common pthread types for all architectures.
+// Copyright (C) 2017-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
@@ -1163,39 +1247,109 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
-// Determine the wordsize from the preprocessor defines.
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
-// Definitions for internal mutex struct.
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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.
-type X__pthread_rwlock_arch_t = struct {
- F__readers uint32
- F__writers uint32
- F__wrphase_futex uint32
- F__writers_futex uint32
- F__pad3 uint32
- F__pad4 uint32
- F__flags uint8
- F__shared uint8
- F__rwelision int8
- F__pad2 uint8
- F__cur_writer int32
-} /* pthreadtypes-arch.h:65:1 */
+// 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.
// Extra attributes for the cleanup functions.
// Common definition of pthread_mutex_t.
-type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:88:9 */
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
-// Extra attributes for the cleanup functions.
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
-// Common definition of pthread_mutex_t.
+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:91:3 */
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+// It should initialize the mutex internal flag.
-// Lock elision support.
+// x86 internal mutex struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
type X__pthread_mutex_s = struct {
F__lock int32
@@ -1204,13 +1358,57 @@ type X__pthread_mutex_s = struct {
F__kind int32
F__nusers uint32
F__20 struct {
- _ [0]uint32
+ F__ccgo_pad1 [0]uint32
F__elision_data struct {
F__espins int16
F__eelision int16
}
}
-} /* thread-shared-types.h:118:1 */
+} /* struct_mutex.h:22:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 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.
+//
+// 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/>.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__flags uint8
+ F__shared uint8
+ F__rwelision int8
+ F__pad2 uint8
+ F__cur_writer int32
+} /* struct_rwlock.h:23:1 */
// Common definition of pthread_cond_t.
@@ -1222,7 +1420,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1231,15 +1429,15 @@ type Pthread_t = uint32 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1249,8 +1447,8 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint32
- F__size [36]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [36]int8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
@@ -1264,8 +1462,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]int8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1274,13 +1472,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint32
- F__size [20]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [20]int8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:118:3 */
var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_linux_amd64.go b/vendor/modernc.org/libc/sys/types/types_linux_amd64.go
index 46a8e9719..2aa62fe32 100644
--- a/vendor/modernc.org/libc/sys/types/types_linux_amd64.go
+++ b/vendor/modernc.org/libc/sys/types/types_linux_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_amd64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_amd64.go -pkgname types', DO NOT EDIT.
package types
@@ -22,9 +22,12 @@ const (
PDP_ENDIAN = 3412
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -38,6 +41,7 @@ const (
X_LP64 = 1
X_POSIX_C_SOURCE = 200809
X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
X_SIZET_ = 0
X_SIZE_T = 0
X_SIZE_T_ = 0
@@ -50,6 +54,7 @@ const (
X_SYS_SELECT_H = 1
X_SYS_SIZE_T_H = 0
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -75,7 +80,7 @@ type X__uint128_t = struct {
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -90,11 +95,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -109,7 +114,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -117,6 +122,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -237,6 +243,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -259,9 +267,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -276,7 +297,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -289,7 +310,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -304,7 +325,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -419,7 +440,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -440,11 +461,15 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
// Determine the wordsize from the preprocessor defines.
// Both x86-64 and x32 use the 64-bit system call interface.
// Properties of long double type. ldbl-96 version.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -459,7 +484,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// long double is distinct from double, so there is nothing to
// define here.
@@ -497,7 +522,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -512,11 +537,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -531,45 +556,64 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
// 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.
+// 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/>.
+
+// For others, time size is word size.
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint64 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint64 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:43:25 */
-type X__uint64_t = uint64 /* types.h:44:27 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+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:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:62:18 */
-type X__u_quad_t = uint64 /* types.h:63:27 */
+type X__quad_t = int64 /* types.h:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:71:18 */
-type X__uintmax_t = uint64 /* types.h:72:27 */
+type X__intmax_t = int64 /* types.h:72:18 */
+type X__uintmax_t = uint64 /* types.h:73:27 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -581,7 +625,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -602,7 +646,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// No need to mark the typedef with __extension__.
// bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
-// Copyright (C) 2012-2018 Free Software Foundation, Inc.
+// Copyright (C) 2012-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
@@ -617,7 +661,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
//
// 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/>.
+// <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.
@@ -632,78 +676,106 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// And for __rlim_t and __rlim64_t.
+// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
+
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint64 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// If we already have 64-bit time type then use it.
+
+type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+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__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.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+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__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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int64 /* types.h:172:29 */
+type X__blksize_t = int64 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int64 /* types.h:177:28 */
-type X__blkcnt64_t = int64 /* types.h:178:30 */
+type X__blkcnt_t = int64 /* types.h:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint64 /* types.h:181:30 */
-type X__fsblkcnt64_t = uint64 /* types.h:182:32 */
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint64 /* types.h:185:30 */
-type X__fsfilcnt64_t = uint64 /* types.h:186:32 */
+type X__fsfilcnt_t = uint64 /* types.h:187:30 */
+type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int64 /* types.h:189:28 */
+type X__fsword_t = int64 /* types.h:191:28 */
-type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int64 /* types.h:194:33 */
+type X__syscall_slong_t = int64 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint64 /* types.h:196:33 */
+type X__syscall_ulong_t = uint64 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int64 /* types.h:204:25 */
+type X__intptr_t = int64 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -740,7 +812,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -755,7 +827,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -763,7 +835,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -778,7 +850,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -786,7 +858,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -801,7 +873,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -809,7 +881,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -824,7 +896,7 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -839,11 +911,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -854,7 +921,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -869,10 +936,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -887,7 +954,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -896,18 +963,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
+// 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 = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
-
-type Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -922,11 +988,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -941,11 +1007,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -960,12 +1026,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -980,7 +1046,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
@@ -996,7 +1062,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-2018 Free Software Foundation, Inc.
+// 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
@@ -1011,7 +1077,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1025,7 +1091,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1040,16 +1106,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1069,16 +1153,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1093,11 +1177,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1112,7 +1196,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1127,36 +1211,6 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
-//
// The additional macro defines any constraint for the lock alignment
// inside the thread structures:
//
@@ -1165,11 +1219,8 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
-//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
-//
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+
+// 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
@@ -1184,42 +1235,141 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
// Both x86-64 and x32 use the 64-bit system call interface.
-// Definitions for internal mutex struct.
-
-type X__pthread_rwlock_arch_t = struct {
- F__readers uint32
- F__writers uint32
- F__wrphase_futex uint32
- F__writers_futex uint32
- F__pad3 uint32
- F__pad4 uint32
- F__cur_writer int32
- F__shared int32
- F__rwelision int8
- F__pad1 [7]uint8
- F__pad2 uint64
- F__flags uint32
- _ [4]byte
-} /* pthreadtypes-arch.h:65:1 */
-
// Common definition of pthread_mutex_t.
type X__pthread_internal_list = struct {
F__prev uintptr
F__next uintptr
-} /* thread-shared-types.h:82:9 */
+} /* thread-shared-types.h:49:9 */
+
+// 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.
+// 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/>.
+
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
+
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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.
+
+// 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.
+
+// Both x86-64 and x32 use the 64-bit system call interface.
// Common definition of pthread_mutex_t.
-type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:86:3 */
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
+
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
+
+type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
+
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+// It should initialize the mutex internal flag.
-// Lock elision support.
+// x86 internal mutex struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
type X__pthread_mutex_s = struct {
F__lock int32
@@ -1230,7 +1380,53 @@ type X__pthread_mutex_s = struct {
F__spins int16
F__elision int16
F__list X__pthread_list_t
-} /* thread-shared-types.h:118:1 */
+} /* struct_mutex.h:22:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 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.
+//
+// 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/>.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ 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 */
// Common definition of pthread_cond_t.
@@ -1242,7 +1438,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1251,15 +1447,15 @@ type Pthread_t = uint64 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1269,8 +1465,8 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint64
- F__size [56]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [56]int8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
@@ -1284,8 +1480,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint64
- F__size [8]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [8]int8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1294,13 +1490,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint64
- F__size [32]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [32]int8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]int8
} /* pthreadtypes.h:118:3 */
var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_linux_arm.go b/vendor/modernc.org/libc/sys/types/types_linux_arm.go
index c5b8a5ff5..466d7a198 100644
--- a/vendor/modernc.org/libc/sys/types/types_linux_arm.go
+++ b/vendor/modernc.org/libc/sys/types/types_linux_arm.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_arm.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_arm.go -pkgname types', DO NOT EDIT.
package types
@@ -22,9 +22,12 @@ const (
PDP_ENDIAN = 3412
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -49,6 +52,7 @@ const (
X_SYS_SELECT_H = 1
X_SYS_SIZE_T_H = 0
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -65,7 +69,7 @@ type Wchar_t = uint32 /* <builtin>:15:24 */
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -80,11 +84,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -99,7 +103,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -107,6 +111,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -227,6 +232,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -249,9 +256,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -266,7 +286,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -279,7 +299,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -294,7 +314,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -409,7 +429,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -430,7 +450,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
-// Copyright (C) 1999-2018 Free Software Foundation, Inc.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
+// Copyright (C) 1999-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
@@ -445,10 +469,10 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Properties of long double type.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -463,7 +487,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This header is included by <sys/cdefs.h>.
//
@@ -517,7 +541,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -532,11 +556,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -551,9 +575,9 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1999-2018 Free Software Foundation, Inc.
+// Copyright (C) 1999-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
@@ -568,41 +592,78 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
+
+// Bit size of the time_t type at glibc build time, general case.
+// Copyright (C) 2018-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/>.
+
+// Copyright (C) 1999-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/>.
+
+// Size in bits of the 'time_t' type of the default ABI.
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint32 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint32 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:46:44 */
-type X__uint64_t = uint64 /* types.h:47:46 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+type X__int64_t = int64 /* types.h:47:44 */
+type X__uint64_t = uint64 /* types.h:48:46 */
// Smallest types with at least a given width.
-type X__int_least8_t = X__int8_t /* types.h:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:65:37 */
-type X__u_quad_t = uint64 /* types.h:66:46 */
+type X__quad_t = int64 /* types.h:66:37 */
+type X__u_quad_t = uint64 /* types.h:67:46 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:74:37 */
-type X__uintmax_t = uint64 /* types.h:75:46 */
+type X__intmax_t = int64 /* types.h:75:37 */
+type X__uintmax_t = uint64 /* types.h:76:46 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -614,7 +675,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -636,7 +697,7 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
// We want __extension__ before typedef's that use nonstandard base types
// such as `long long' in C89 mode.
// bits/typesizes.h -- underlying types for *_t. Generic version.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -651,83 +712,110 @@ type X__uintmax_t = uint64 /* types.h:75:46 */
//
// 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/>.
+// <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.
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = X__u_quad_t /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint32 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = X__u_quad_t /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint32 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int32 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = X__quad_t /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int32 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint32 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = X__u_quad_t /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int32 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int32 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// Define a 64-bit time type alongsize the 32-bit one.
+
+type X__dev_t = X__uint64_t /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+type X__ino_t = uint32 /* types.h:148:25 */ // Type of file serial numbers.
+type X__ino64_t = X__uint64_t /* 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 = uint32 /* types.h:151:27 */ // Type of file link counts.
+type X__off_t = int32 /* types.h:152:25 */ // Type of file sizes and offsets.
+type X__off64_t = X__int64_t /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
+type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int32 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint32 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = X__uint64_t /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+type X__time_t = int32 /* types.h:160:26 */ // Seconds since the Epoch.
+type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
+type X__suseconds_t = int32 /* types.h:162:31 */ // Signed count of microseconds.
+
+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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int32 /* types.h:172:29 */
+type X__blksize_t = int32 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int32 /* types.h:177:28 */
-type X__blkcnt64_t = X__quad_t /* types.h:178:30 */
+type X__blkcnt_t = int32 /* types.h:179:28 */
+type X__blkcnt64_t = X__int64_t /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint32 /* types.h:181:30 */
-type X__fsblkcnt64_t = X__u_quad_t /* types.h:182:32 */
+type X__fsblkcnt_t = uint32 /* types.h:183:30 */
+type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint32 /* types.h:185:30 */
-type X__fsfilcnt64_t = X__u_quad_t /* types.h:186:32 */
+type X__fsfilcnt_t = uint32 /* types.h:187:30 */
+type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int32 /* types.h:189:28 */
+type X__fsword_t = int32 /* types.h:191:28 */
-type X__ssize_t = int32 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int32 /* types.h:194:33 */
+type X__syscall_slong_t = int32 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint32 /* types.h:196:33 */
+type X__syscall_ulong_t = uint32 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int32 /* types.h:204:25 */
+type X__intptr_t = int32 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 X__time64_t = X__int64_t /* types.h:222:28 */
type U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -764,7 +852,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -779,7 +867,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -787,7 +875,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -802,7 +890,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -810,7 +898,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -825,7 +913,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -833,7 +921,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -848,7 +936,7 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -863,11 +951,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -878,7 +961,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -893,10 +976,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -911,7 +994,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -920,18 +1003,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
+// 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 = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
-
-type Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -946,11 +1028,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -965,11 +1047,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -984,12 +1066,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -1004,7 +1086,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We don't use `memset' because this would require a prototype and
// the array isn't too big.
@@ -1019,7 +1101,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-2018 Free Software Foundation, Inc.
+// 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
@@ -1034,7 +1116,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1048,7 +1130,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1063,16 +1145,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1092,16 +1192,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1116,11 +1216,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1135,7 +1235,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1150,35 +1250,110 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
+// 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.
+
+// Machine-specific pthread type layouts. Generic version.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
+
+// Copyright (C) 1999-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/>.
+
+// 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.
+
+// Now add the thread types.
+// Declaration of common pthread types for all architectures.
+// Copyright (C) 2017-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/>.
+
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
+
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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:
@@ -1188,11 +1363,27 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
+
+// Machine-specific pthread type layouts. Generic version.
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
+// This file is part of the GNU C Library.
//
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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/>.
+
+// Copyright (C) 1999-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
@@ -1206,10 +1397,94 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// 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/>.
+
+// Common definition of pthread_mutex_t.
+
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
+
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
+
+type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
+
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+// It should initialize the mutex internal flag.
+
+// Default mutex implementation struct definitions.
+// Copyright (C) 2019-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
+// <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__kind int32
+ F__nusers uint32
+ F__20 struct{ F__spins int32 }
+} /* 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
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
+// It should initialize the rwlock internal type.
+
+// Default read-write lock implementation struct definitions.
+// Copyright (C) 2019-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
// <http://www.gnu.org/licenses/>.
-// Copyright (C) 1992-2018 Free Software Foundation, Inc.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
@@ -1226,7 +1501,10 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// License along with the GNU C Library; if not, see
// <http://www.gnu.org/licenses/>.
-// Data structure for mutex handling.
+// 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
@@ -1240,27 +1518,7 @@ type X__pthread_rwlock_arch_t = struct {
F__pad1 uint8
F__pad2 uint8
F__cur_writer int32
-} /* pthreadtypes-arch.h:43:1 */
-
-// Common definition of pthread_mutex_t.
-
-type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:88:9 */
-
-// Common definition of pthread_mutex_t.
-
-type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:91:3 */
-
-// Lock elision support.
-// Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.
-
-type X__pthread_mutex_s = struct {
- F__lock int32
- F__count uint32
- F__owner int32
- F__kind int32
- F__nusers uint32
- F__20 struct{ F__spins int32 }
-} /* thread-shared-types.h:118:1 */
+} /* struct_rwlock.h:29:1 */
// Common definition of pthread_cond_t.
@@ -1272,7 +1530,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1281,15 +1539,15 @@ type Pthread_t = uint32 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1299,8 +1557,8 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint32
- F__size [36]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [36]uint8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
@@ -1314,8 +1572,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1324,13 +1582,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint32
- F__size [20]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [20]uint8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:118:3 */
-var _ int8 /* gen.c:2:13: */
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_linux_arm64.go b/vendor/modernc.org/libc/sys/types/types_linux_arm64.go
index 4f6c9a72d..8efdaee68 100644
--- a/vendor/modernc.org/libc/sys/types/types_linux_arm64.go
+++ b/vendor/modernc.org/libc/sys/types/types_linux_arm64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_arm64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_arm64.go -pkgname types', DO NOT EDIT.
package types
@@ -22,9 +22,12 @@ const (
PDP_ENDIAN = 3412
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -38,6 +41,7 @@ const (
X_LP64 = 1
X_POSIX_C_SOURCE = 200809
X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
X_SIZET_ = 0
X_SIZE_T = 0
X_SIZE_T_ = 0
@@ -50,6 +54,7 @@ const (
X_SYS_SELECT_H = 1
X_SYS_SIZE_T_H = 0
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -75,7 +80,7 @@ type X__uint128_t = struct {
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -90,11 +95,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -109,7 +114,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -117,6 +122,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -237,6 +243,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -259,9 +267,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -276,7 +297,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -289,7 +310,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -304,7 +325,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -419,7 +440,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -440,9 +461,13 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
// Determine the wordsize from the preprocessor defines.
//
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -457,10 +482,10 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Properties of long double type. ldbl-128 version.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -475,7 +500,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// long double is distinct from double, so there is nothing to
// define here.
@@ -509,7 +534,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// Determine the wordsize from the preprocessor defines.
//
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -524,7 +549,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This file is automatically generated.
// It defines a symbol `__stub_FUNCTION' for each function
@@ -532,7 +557,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -547,11 +572,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -566,11 +591,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
//
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -585,41 +610,80 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
+
+// Bit size of the time_t type at glibc build time, general case.
+// Copyright (C) 2018-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.
+//
+// Copyright (C) 2016-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/>.
+
+// Size in bits of the 'time_t' type of the default ABI.
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint64 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint64 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:43:25 */
-type X__uint64_t = uint64 /* types.h:44:27 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+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:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:62:18 */
-type X__u_quad_t = uint64 /* types.h:63:27 */
+type X__quad_t = int64 /* types.h:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:71:18 */
-type X__uintmax_t = uint64 /* types.h:72:27 */
+type X__intmax_t = int64 /* types.h:72:18 */
+type X__uintmax_t = uint64 /* types.h:73:27 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -631,7 +695,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -652,7 +716,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// No need to mark the typedef with __extension__.
// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
-// Copyright (C) 2011-2018 Free Software Foundation, Inc.
+// Copyright (C) 2011-2020 Free Software Foundation, Inc.
// This file is part of the GNU C Library.
// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
//
@@ -668,7 +732,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
//
// 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/>.
+// <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.
@@ -681,78 +745,105 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// And for __rlim_t and __rlim64_t.
+// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint32 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// If we already have 64-bit time type then use it.
+
+type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+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 = 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.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+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__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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int32 /* types.h:172:29 */
+type X__blksize_t = int32 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int64 /* types.h:177:28 */
-type X__blkcnt64_t = int64 /* types.h:178:30 */
+type X__blkcnt_t = int64 /* types.h:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint64 /* types.h:181:30 */
-type X__fsblkcnt64_t = uint64 /* types.h:182:32 */
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint64 /* types.h:185:30 */
-type X__fsfilcnt64_t = uint64 /* types.h:186:32 */
+type X__fsfilcnt_t = uint64 /* types.h:187:30 */
+type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int64 /* types.h:189:28 */
+type X__fsword_t = int64 /* types.h:191:28 */
-type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int64 /* types.h:194:33 */
+type X__syscall_slong_t = int64 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint64 /* types.h:196:33 */
+type X__syscall_ulong_t = uint64 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int64 /* types.h:204:25 */
+type X__intptr_t = int64 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -789,7 +880,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -804,7 +895,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -812,7 +903,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -827,7 +918,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -835,7 +926,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -850,7 +941,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -858,7 +949,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -873,7 +964,7 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -888,11 +979,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -903,7 +989,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -918,10 +1004,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -936,7 +1022,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -945,18 +1031,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
-
-type U_int8_t = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
+// 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 Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -971,11 +1056,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -990,11 +1075,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1009,12 +1094,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -1029,7 +1114,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We don't use `memset' because this would require a prototype and
// the array isn't too big.
@@ -1044,7 +1129,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-2018 Free Software Foundation, Inc.
+// 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
@@ -1059,7 +1144,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1073,7 +1158,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1088,16 +1173,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1117,16 +1220,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1141,11 +1244,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1160,7 +1263,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1175,36 +1278,6 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
-//
// The additional macro defines any constraint for the lock alignment
// inside the thread structures:
//
@@ -1213,11 +1286,8 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
-//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
-//
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+
+// Copyright (C) 2002-2020 Free Software Foundation, Inc.
//
// This file is part of the GNU C Library.
//
@@ -1233,9 +1303,10 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
-// Copyright (C) 1992-2018 Free Software Foundation, Inc.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
@@ -1252,36 +1323,155 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// License along with the GNU C Library; if not, see
// <http://www.gnu.org/licenses/>.
-// Definitions for internal mutex struct.
-
-type X__pthread_rwlock_arch_t = struct {
- F__readers uint32
- F__writers uint32
- F__wrphase_futex uint32
- F__writers_futex uint32
- F__pad3 uint32
- F__pad4 uint32
- F__cur_writer int32
- F__shared int32
- F__pad1 uint64
- F__pad2 uint64
- F__flags uint32
- _ [4]byte
-} /* pthreadtypes-arch.h:54:1 */
-
// Common definition of pthread_mutex_t.
type X__pthread_internal_list = struct {
F__prev uintptr
F__next uintptr
-} /* thread-shared-types.h:82:9 */
+} /* thread-shared-types.h:49:9 */
+
+// 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.
+// 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/>.
+
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
+
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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.
+
+// 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/>.
+
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
// Common definition of pthread_mutex_t.
-type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:86:3 */
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
+
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
+
+type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
+
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+// It should initialize the mutex internal flag.
+
+// Default mutex implementation struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
-// Lock elision support.
-// Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.
+// 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
@@ -1291,7 +1481,52 @@ type X__pthread_mutex_s = struct {
F__kind int32
F__spins int32
F__list X__pthread_list_t
-} /* thread-shared-types.h:118:1 */
+} /* 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
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
+// It should initialize the rwlock internal type.
+
+// AArch64 internal rwlock struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__cur_writer int32
+ F__shared int32
+ F__pad1 uint64
+ F__pad2 uint64
+ F__flags uint32
+ F__ccgo_pad1 [4]byte
+} /* struct_rwlock.h:23:1 */
// Common definition of pthread_cond_t.
@@ -1303,7 +1538,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1312,15 +1547,15 @@ type Pthread_t = uint64 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1330,15 +1565,15 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint64
- F__size [64]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [64]uint8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
type Pthread_mutex_t = struct {
- F__data X__pthread_mutex_s
- _ [8]byte
+ F__data X__pthread_mutex_s
+ F__ccgo_pad1 [8]byte
} /* pthreadtypes.h:72:3 */
type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
@@ -1348,8 +1583,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint64
- F__size [8]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1358,13 +1593,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint64
- F__size [32]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [8]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [8]uint8
} /* pthreadtypes.h:118:3 */
-var _ int8 /* gen.c:2:13: */
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_linux_s390x.go b/vendor/modernc.org/libc/sys/types/types_linux_s390x.go
index 199fdd2da..3f66eb727 100644
--- a/vendor/modernc.org/libc/sys/types/types_linux_s390x.go
+++ b/vendor/modernc.org/libc/sys/types/types_linux_s390x.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_s390x.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_s390x.go -pkgname types', DO NOT EDIT.
package types
@@ -22,9 +22,12 @@ const (
PDP_ENDIAN = 3412
X_ATFILE_SOURCE = 1
X_BITS_BYTESWAP_H = 1
+ X_BITS_ENDIANNESS_H = 1
+ X_BITS_ENDIAN_H = 1
X_BITS_PTHREADTYPES_ARCH_H = 1
X_BITS_PTHREADTYPES_COMMON_H = 1
X_BITS_STDINT_INTN_H = 1
+ X_BITS_TIME64_H = 1
X_BITS_TYPESIZES_H = 1
X_BITS_TYPES_H = 1
X_BITS_UINTN_IDENTITY_H = 1
@@ -38,6 +41,7 @@ const (
X_LP64 = 1
X_POSIX_C_SOURCE = 200809
X_POSIX_SOURCE = 1
+ X_RWLOCK_INTERNAL_H = 0
X_SIZET_ = 0
X_SIZE_T = 0
X_SIZE_T_ = 0
@@ -50,6 +54,7 @@ const (
X_SYS_SELECT_H = 1
X_SYS_SIZE_T_H = 0
X_SYS_TYPES_H = 1
+ X_THREAD_MUTEX_INTERNAL_H = 1
X_THREAD_SHARED_TYPES_H = 1
X_T_SIZE = 0
X_T_SIZE_ = 0
@@ -75,7 +80,7 @@ type X__uint128_t = struct {
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
type X__float128 = float64 /* <builtin>:47:21 */
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -90,11 +95,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -109,7 +114,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// These are defined by the user (or the compiler)
// to specify the desired environment:
@@ -117,6 +122,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// __STRICT_ANSI__ ISO Standard C.
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
+// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
// __STDC_WANT_LIB_EXT2__
// Extensions to ISO C99 from TR 27431-2:2010.
// __STDC_WANT_IEC_60559_BFP_EXT__
@@ -237,6 +243,8 @@ type X__float128 = float64 /* <builtin>:47:21 */
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
// define _DEFAULT_SOURCE.
+// This is to enable the ISO C2X extension.
+
// This is to enable the ISO C11 extension.
// This is to enable the ISO C99 extension.
@@ -259,9 +267,22 @@ type X__float128 = float64 /* <builtin>:47:21 */
// compatibility with various implementations of <cstdio>, this test
// must consider only the value of __cplusplus when compiling C++.
+// GNU formerly extended the scanf functions with modified format
+// specifiers %as, %aS, and %a[...] that allocate a buffer for the
+// input using malloc. This extension conflicts with ISO C99, which
+// defines %a as a standalone format specifier that reads a floating-
+// point number; moreover, POSIX.1-2008 provides the same feature
+// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
+//
+// We now follow C99 unless GNU extensions are active and the compiler
+// is specifically in C89 or C++98 mode (strict or not). For
+// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
+// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
+// old extension.
+
// Get definitions of __STDC_* predefined macros, if the compiler has
// not preincluded this header automatically.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -276,7 +297,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// This macro indicates that the installed library is the GNU C Library.
// For historic reasons the value now is 6 and this will stay from now
@@ -289,7 +310,7 @@ 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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1992-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
@@ -304,7 +325,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We are almost always included from features.h.
@@ -419,7 +440,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// semantics.
//
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
-// semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
+// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
// __GNUC_GNU_INLINE__ macro definitions.
// GCC 4.3 and above allow passing all anonymous arguments of an
@@ -440,10 +461,14 @@ type X__float128 = float64 /* <builtin>:47:21 */
// argument to strncpy and strncat, as the char array is not necessarily
// a NUL-terminated string.
+// Undefine (also defined in libc-symbols.h).
+// Copies attributes from the declaration or type referenced by
+// the argument.
+
// Determine the wordsize from the preprocessor defines.
// Properties of long double type. ldbl-opt version.
-// Copyright (C) 2016-2018 Free Software Foundation, Inc.
+// Copyright (C) 2016-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
@@ -458,7 +483,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
// intended for use in preprocessor macros.
@@ -495,7 +520,7 @@ type X__float128 = float64 /* <builtin>:47:21 */
// every time called, usually setting errno to ENOSYS.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -510,11 +535,11 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -529,43 +554,65 @@ type X__float128 = float64 /* <builtin>:47:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Determine the wordsize from the preprocessor defines.
+// Bit size of the time_t type at glibc build time, general case.
+// Copyright (C) 2018-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.
+
+// Size in bits of the 'time_t' type of the default ABI.
+
// Convenience types.
-type X__u_char = uint8 /* types.h:30:23 */
-type X__u_short = uint16 /* types.h:31:28 */
-type X__u_int = uint32 /* types.h:32:22 */
-type X__u_long = uint64 /* types.h:33:27 */
+type X__u_char = uint8 /* types.h:31:23 */
+type X__u_short = uint16 /* types.h:32:28 */
+type X__u_int = uint32 /* types.h:33:22 */
+type X__u_long = uint64 /* types.h:34:27 */
// Fixed-size types, underlying types depend on word size and compiler.
-type X__int8_t = int8 /* types.h:36:21 */
-type X__uint8_t = uint8 /* types.h:37:23 */
-type X__int16_t = int16 /* types.h:38:26 */
-type X__uint16_t = uint16 /* types.h:39:28 */
-type X__int32_t = int32 /* types.h:40:20 */
-type X__uint32_t = uint32 /* types.h:41:22 */
-type X__int64_t = int64 /* types.h:43:25 */
-type X__uint64_t = uint64 /* types.h:44:27 */
+type X__int8_t = int8 /* types.h:37:21 */
+type X__uint8_t = uint8 /* types.h:38:23 */
+type X__int16_t = int16 /* types.h:39:26 */
+type X__uint16_t = uint16 /* types.h:40:28 */
+type X__int32_t = int32 /* types.h:41:20 */
+type X__uint32_t = uint32 /* types.h:42:22 */
+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:51:18 */
-type X__uint_least8_t = X__uint8_t /* types.h:52:19 */
-type X__int_least16_t = X__int16_t /* types.h:53:19 */
-type X__uint_least16_t = X__uint16_t /* types.h:54:20 */
-type X__int_least32_t = X__int32_t /* types.h:55:19 */
-type X__uint_least32_t = X__uint32_t /* types.h:56:20 */
-type X__int_least64_t = X__int64_t /* types.h:57:19 */
-type X__uint_least64_t = X__uint64_t /* types.h:58:20 */
+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 */
// quad_t is also 64 bits.
-type X__quad_t = int64 /* types.h:62:18 */
-type X__u_quad_t = uint64 /* types.h:63:27 */
+type X__quad_t = int64 /* types.h:63:18 */
+type X__u_quad_t = uint64 /* types.h:64:27 */
// Largest integral types.
-type X__intmax_t = int64 /* types.h:71:18 */
-type X__uintmax_t = uint64 /* types.h:72:27 */
+type X__intmax_t = int64 /* types.h:72:18 */
+type X__uintmax_t = uint64 /* types.h:73:27 */
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
// macros for each of the OS types we define below. The definitions
@@ -577,7 +624,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// 32 -- "natural" 32-bit type (always int)
// 64 -- "natural" 64-bit type (long or long long)
// LONG32 -- 32-bit type, traditionally long
-// QUAD -- 64-bit type, always long long
+// QUAD -- 64-bit type, traditionally long long
// WORD -- natural type of __WORDSIZE bits (int or long)
// LONGWORD -- type of __WORDSIZE bits, traditionally long
//
@@ -598,7 +645,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// No need to mark the typedef with __extension__.
// bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
-// Copyright (C) 2003-2018 Free Software Foundation, Inc.
+// Copyright (C) 2003-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
@@ -613,7 +660,7 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
//
// 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/>.
+// <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.
@@ -628,78 +675,106 @@ type X__uintmax_t = uint64 /* types.h:72:27 */
// And for __rlim_t and __rlim64_t.
+// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
+
// Number of descriptors that can fit in an `fd_set'.
-type X__dev_t = uint64 /* types.h:143:25 */ // Type of device numbers.
-type X__uid_t = uint32 /* types.h:144:25 */ // Type of user identifications.
-type X__gid_t = uint32 /* types.h:145:25 */ // Type of group identifications.
-type X__ino_t = uint64 /* types.h:146:25 */ // Type of file serial numbers.
-type X__ino64_t = uint64 /* types.h:147:27 */ // Type of file serial numbers (LFS).
-type X__mode_t = uint32 /* types.h:148:26 */ // Type of file attribute bitmasks.
-type X__nlink_t = uint64 /* types.h:149:27 */ // Type of file link counts.
-type X__off_t = int64 /* types.h:150:25 */ // Type of file sizes and offsets.
-type X__off64_t = int64 /* types.h:151:27 */ // Type of file sizes and offsets (LFS).
-type X__pid_t = int32 /* types.h:152:25 */ // Type of process identifications.
-type X__fsid_t = struct{ F__val [2]int32 } /* types.h:153:26 */ // Type of file system IDs.
-type X__clock_t = int64 /* types.h:154:27 */ // Type of CPU usage counts.
-type X__rlim_t = uint64 /* types.h:155:26 */ // Type for resource measurement.
-type X__rlim64_t = uint64 /* types.h:156:28 */ // Type for resource measurement (LFS).
-type X__id_t = uint32 /* types.h:157:24 */ // General type for IDs.
-type X__time_t = int64 /* types.h:158:26 */ // Seconds since the Epoch.
-type X__useconds_t = uint32 /* types.h:159:30 */ // Count of microseconds.
-type X__suseconds_t = int64 /* types.h:160:31 */ // Signed count of microseconds.
-
-type X__daddr_t = int32 /* types.h:162:27 */ // The type of a disk address.
-type X__key_t = int32 /* types.h:163:25 */ // Type of an IPC key.
+// bits/time64.h -- underlying types for __time64_t. Generic version.
+// Copyright (C) 2018-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/>.
+
+// Define __TIME64_T_TYPE so that it is always a 64-bit type.
+
+// If we already have 64-bit time type then use it.
+
+type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
+type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
+type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
+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__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.
+type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
+type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
+type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
+type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
+type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
+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__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.
// Clock ID used in clock and timer functions.
-type X__clockid_t = int32 /* types.h:166:29 */
+type X__clockid_t = int32 /* types.h:168:29 */
// Timer ID returned by `timer_create'.
-type X__timer_t = uintptr /* types.h:169:12 */
+type X__timer_t = uintptr /* types.h:171:12 */
// Type to represent block size.
-type X__blksize_t = int64 /* types.h:172:29 */
+type X__blksize_t = int64 /* types.h:174:29 */
// Types from the Large File Support interface.
// Type to count number of disk blocks.
-type X__blkcnt_t = int64 /* types.h:177:28 */
-type X__blkcnt64_t = int64 /* types.h:178:30 */
+type X__blkcnt_t = int64 /* types.h:179:28 */
+type X__blkcnt64_t = int64 /* types.h:180:30 */
// Type to count file system blocks.
-type X__fsblkcnt_t = uint64 /* types.h:181:30 */
-type X__fsblkcnt64_t = uint64 /* types.h:182:32 */
+type X__fsblkcnt_t = uint64 /* types.h:183:30 */
+type X__fsblkcnt64_t = uint64 /* types.h:184:32 */
// Type to count file system nodes.
-type X__fsfilcnt_t = uint64 /* types.h:185:30 */
-type X__fsfilcnt64_t = uint64 /* types.h:186:32 */
+type X__fsfilcnt_t = uint64 /* types.h:187:30 */
+type X__fsfilcnt64_t = uint64 /* types.h:188:32 */
// Type of miscellaneous file system fields.
-type X__fsword_t = int64 /* types.h:189:28 */
+type X__fsword_t = int64 /* types.h:191:28 */
-type X__ssize_t = int64 /* types.h:191:27 */ // Type of a byte count, or error.
+type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.
// Signed long type used in system calls.
-type X__syscall_slong_t = int64 /* types.h:194:33 */
+type X__syscall_slong_t = int64 /* types.h:196:33 */
// Unsigned long type used in system calls.
-type X__syscall_ulong_t = uint64 /* types.h:196:33 */
+type X__syscall_ulong_t = uint64 /* types.h:198: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:200:19 */ // Type of file sizes and offsets (LFS).
-type X__caddr_t = uintptr /* types.h:201:14 */
+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 */
// Duplicates info from stdint.h but this is used in unistd.h.
-type X__intptr_t = int64 /* types.h:204:25 */
+type X__intptr_t = int64 /* types.h:206:25 */
// Duplicate info from sys/socket.h.
-type X__socklen_t = uint32 /* types.h:207:23 */
+type X__socklen_t = uint32 /* types.h:209: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:212:13 */
+type X__sig_atomic_t = int32 /* types.h:214: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 U_char = X__u_char /* types.h:33:18 */
type U_short = X__u_short /* types.h:34:19 */
@@ -736,7 +811,7 @@ type Caddr_t = X__caddr_t /* types.h:115:19 */
type Key_t = X__key_t /* types.h:121:17 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -751,7 +826,7 @@ type Key_t = X__key_t /* types.h:121:17 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -759,7 +834,7 @@ type Key_t = X__key_t /* types.h:121:17 */
type Clock_t = X__clock_t /* clock_t.h:7:19 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -774,7 +849,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -782,7 +857,7 @@ type Clock_t = X__clock_t /* clock_t.h:7:19 */
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -797,7 +872,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -805,7 +880,7 @@ type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
type Time_t = X__time_t /* time_t.h:7:18 */
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -820,7 +895,7 @@ type Time_t = X__time_t /* time_t.h:7:18 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -835,11 +910,6 @@ type Timer_t = X__timer_t /* timer_t.h:7:19 */
// Define this type if we are doing the whole job,
// or if we want this type in particular.
-// In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-// are already defined.
-// BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.
-// NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.
-
// A null pointer constant.
// Old compatibility names for C types.
@@ -850,7 +920,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-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -865,10 +935,10 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -883,7 +953,7 @@ type Uint = uint32 /* types.h:150:22 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -892,18 +962,17 @@ 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 */
-// For GCC 2.7 and later, we can use specific type-size attributes.
-
-type U_int8_t = uint32 /* types.h:177:1 */
-type U_int16_t = uint32 /* types.h:178:1 */
-type U_int32_t = uint32 /* types.h:179:1 */
-type U_int64_t = uint32 /* types.h:180:1 */
+// 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 Register_t = int32 /* types.h:182:13 */
+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-2018 Free Software Foundation, Inc.
+// Copyright (C) 1996-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
@@ -918,11 +987,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
-// Copyright (C) 1991-2018 Free Software Foundation, Inc.
+// Copyright (C) 1991-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
@@ -937,11 +1006,11 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Get definition of needed basic types.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -956,12 +1025,12 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
// Get __FD_* definitions.
-// Copyright (C) 1997-2018 Free Software Foundation, Inc.
+// Copyright (C) 1997-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
@@ -976,7 +1045,7 @@ type Register_t = int32 /* types.h:182:13 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// We don't use `memset' because this would require a prototype and
// the array isn't too big.
@@ -991,7 +1060,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-2018 Free Software Foundation, Inc.
+// 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
@@ -1006,7 +1075,7 @@ type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
@@ -1020,7 +1089,7 @@ type Timeval = struct {
// NB: Include guard matches what <linux/time.h> uses.
// bits/types.h -- definitions of __*_t types underlying *_t types.
-// Copyright (C) 2002-2018 Free Software Foundation, Inc.
+// 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
@@ -1035,16 +1104,34 @@ type Timeval = struct {
//
// 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/>.
+// <https://www.gnu.org/licenses/>.
// Never include this file directly; use <sys/types.h> instead.
+// Endian macros for string.h functions
+// Copyright (C) 1992-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
+// <http://www.gnu.org/licenses/>.
+
// POSIX.1b structure for a time value. This is like a `struct timeval' but
// has nanoseconds instead of microseconds.
type Timespec = struct {
Ftv_sec X__time_t
Ftv_nsec X__syscall_slong_t
-} /* struct_timespec.h:9:1 */
+} /* struct_timespec.h:10:1 */
type Suseconds_t = X__suseconds_t /* select.h:43:23 */
@@ -1064,16 +1151,16 @@ type Fd_mask = X__fd_mask /* select.h:77:19 */
// Define some inlines helping to catch common problems.
-type Blksize_t = X__blksize_t /* types.h:202:21 */
+type Blksize_t = X__blksize_t /* types.h:185:21 */
// Types from the Large File Support interface.
-type Blkcnt_t = X__blkcnt64_t /* types.h:222:22 */ // Type to count number of disk blocks.
-type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:226:24 */ // Type to count file system blocks.
-type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file system inodes.
+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.
// Now add the thread types.
// Declaration of common pthread types for all architectures.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1088,11 +1175,11 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// For internal mutex and condition variable definitions.
// Common threading primitives definitions for both POSIX and C11.
-// Copyright (C) 2017-2018 Free Software Foundation, Inc.
+// Copyright (C) 2017-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
@@ -1107,7 +1194,7 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230: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
-// <http://www.gnu.org/licenses/>.
+// <https://www.gnu.org/licenses/>.
// Arch-specific definitions. Each architecture must define the following
// macros to define the expected sizes of pthread data types:
@@ -1122,36 +1209,6 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t.
// __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
//
-// Also, the following macros must be define for internal pthread_mutex_t
-// struct definitions (struct __pthread_mutex_s):
-//
-// __PTHREAD_COMPAT_PADDING_MID - any additional members after 'kind'
-// and before '__spin' (for 64 bits) or
-// '__nusers' (for 32 bits).
-// __PTHREAD_COMPAT_PADDING_END - any additional members at the end of
-// the internal structure.
-// __PTHREAD_MUTEX_LOCK_ELISION - 1 if the architecture supports lock
-// elision or 0 otherwise.
-// __PTHREAD_MUTEX_NUSERS_AFTER_KIND - control where to put __nusers. The
-// preferred value for new architectures
-// is 0.
-// __PTHREAD_MUTEX_USE_UNION - control whether internal __spins and
-// __list will be place inside a union for
-// linuxthreads compatibility.
-// The preferred value for new architectures
-// is 0.
-//
-// For a new port the preferred values for the required defines are:
-//
-// #define __PTHREAD_COMPAT_PADDING_MID
-// #define __PTHREAD_COMPAT_PADDING_END
-// #define __PTHREAD_MUTEX_LOCK_ELISION 0
-// #define __PTHREAD_MUTEX_NUSERS_AFTER_KIND 0
-// #define __PTHREAD_MUTEX_USE_UNION 0
-//
-// __PTHREAD_MUTEX_LOCK_ELISION can be set to 1 if the hardware plans to
-// eventually support lock elision using transactional memory.
-//
// The additional macro defines any constraint for the lock alignment
// inside the thread structures:
//
@@ -1160,11 +1217,10 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Same idea but for the once locking primitive:
//
// __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
+
+// Machine-specific pthread type layouts. Generic version.
+// Copyright (C) 2019-2020 Free Software Foundation, Inc.
//
-// And finally the internal pthread_rwlock_t (struct __pthread_rwlock_arch_t)
-// must be defined.
-//
-// Copyright (C) 2003-2018 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
@@ -1183,35 +1239,135 @@ type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:230:24 */ // Type to count file sys
// Determine the wordsize from the preprocessor defines.
-// Definitions for internal mutex struct.
-
-type X__pthread_rwlock_arch_t = struct {
- F__readers uint32
- F__writers uint32
- F__wrphase_futex uint32
- F__writers_futex uint32
- F__pad3 uint32
- F__pad4 uint32
- F__cur_writer int32
- F__shared int32
- F__pad1 uint64
- F__pad2 uint64
- F__flags uint32
- _ [4]byte
-} /* pthreadtypes-arch.h:50:1 */
-
// Common definition of pthread_mutex_t.
type X__pthread_internal_list = struct {
F__prev uintptr
F__next uintptr
-} /* thread-shared-types.h:82:9 */
+} /* thread-shared-types.h:49:9 */
+
+// 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.
+// 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/>.
+
+// For internal mutex and condition variable definitions.
+// Common threading primitives definitions for both POSIX and C11.
+// Copyright (C) 2017-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/>.
+
+// Arch-specific definitions. Each architecture must define the following
+// macros to define the expected sizes of pthread data types:
+//
+// __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.
+
+// Machine-specific pthread type layouts. Generic version.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
+
+// Determine the wordsize from the preprocessor defines.
// Common definition of pthread_mutex_t.
-type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:86:3 */
+type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
+
+type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
+
+type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
+
+// Arch-specific mutex definitions. A generic implementation is provided
+// by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture
+// can override it by defining:
+//
+// 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
+// definition). It should contains at least the internal members
+// defined in the generic version.
+//
+// 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
+// atomic operations.
+//
+// 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
+// It should initialize the mutex internal flag.
-// Lock elision support.
+// S390 internal mutex struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
type X__pthread_mutex_s = struct {
F__lock int32
@@ -1222,7 +1378,52 @@ type X__pthread_mutex_s = struct {
F__spins int16
F__elision int16
F__list X__pthread_list_t
-} /* thread-shared-types.h:118:1 */
+} /* struct_mutex.h:22:1 */
+
+// Arch-sepecific read-write lock definitions. A generic implementation is
+// provided by struct_rwlock.h. If required, an architecture can override it
+// by defining:
+//
+// 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
+// It should contain at least the internal members defined in the
+// generic version.
+//
+// 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
+// It should initialize the rwlock internal type.
+
+// S390 internal rwlock struct definitions.
+// Copyright (C) 2019-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
+// <http://www.gnu.org/licenses/>.
+
+type X__pthread_rwlock_arch_t = struct {
+ F__readers uint32
+ F__writers uint32
+ F__wrphase_futex uint32
+ F__writers_futex uint32
+ F__pad3 uint32
+ F__pad4 uint32
+ F__cur_writer int32
+ F__shared int32
+ F__pad1 uint64
+ F__pad2 uint64
+ F__flags uint32
+ F__ccgo_pad1 [4]byte
+} /* struct_rwlock.h:23:1 */
// Common definition of pthread_cond_t.
@@ -1234,7 +1435,7 @@ type X__pthread_cond_s = struct {
F__g1_orig_size uint32
F__wrefs uint32
F__g_signals [2]uint32
-} /* thread-shared-types.h:171:1 */
+} /* thread-shared-types.h:92:1 */
// Thread identifiers. The structure of the attribute type is not
// exposed on purpose.
@@ -1243,15 +1444,15 @@ type Pthread_t = uint64 /* pthreadtypes.h:27:27 */
// Data structures for mutex handling. The structure of the attribute
// type is not exposed on purpose.
type Pthread_mutexattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:36:3 */
// Data structure for condition variable handling. The structure of
// the attribute type is not exposed on purpose.
type Pthread_condattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:45:3 */
// Keys for thread-specific data
@@ -1261,8 +1462,8 @@ type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
type Pthread_attr_t1 = struct {
- _ [0]uint64
- F__size [56]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [56]uint8
} /* pthreadtypes.h:56:1 */
type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
@@ -1276,8 +1477,8 @@ type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3
type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
type Pthread_rwlockattr_t = struct {
- _ [0]uint64
- F__size [8]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [8]uint8
} /* pthreadtypes.h:97:3 */
// POSIX spinlock data type.
@@ -1286,13 +1487,13 @@ type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
// POSIX barriers data type. The structure of the type is
// deliberately not exposed.
type Pthread_barrier_t = struct {
- _ [0]uint64
- F__size [32]int8
+ F__ccgo_pad1 [0]uint64
+ F__size [32]uint8
} /* pthreadtypes.h:112:3 */
type Pthread_barrierattr_t = struct {
- _ [0]uint32
- F__size [4]int8
+ F__ccgo_pad1 [0]uint32
+ F__size [4]uint8
} /* pthreadtypes.h:118:3 */
-var _ int8 /* gen.c:2:13: */
+var _ uint8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_netbsd_amd64.go b/vendor/modernc.org/libc/sys/types/types_netbsd_amd64.go
new file mode 100644
index 000000000..37b688de5
--- /dev/null
+++ b/vendor/modernc.org/libc/sys/types/types_netbsd_amd64.go
@@ -0,0 +1,1364 @@
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_netbsd_amd64.go -pkgname types', DO NOT EDIT.
+
+package types
+
+import (
+ "math"
+ "reflect"
+ "sync/atomic"
+ "unsafe"
+)
+
+var _ = math.Pi
+var _ reflect.Kind
+var _ atomic.Value
+var _ unsafe.Pointer
+
+const (
+ BIG_ENDIAN = 4321
+ BYTE_ORDER = 1234
+ FD_SETSIZE = 256
+ INT16_MAX = 32767
+ INT16_MIN = -32768
+ INT32_MAX = 2147483647
+ INT32_MIN = -2147483648
+ INT64_MAX = 9223372036854775807
+ INT64_MIN = -9223372036854775808
+ INT8_MAX = 127
+ INT8_MIN = -128
+ INTMAX_MAX = 9223372036854775807
+ INTMAX_MIN = -9223372036854775808
+ INTPTR_MAX = 9223372036854775807
+ INTPTR_MIN = -9223372036854775808
+ INT_FAST16_MAX = 2147483647
+ INT_FAST16_MIN = -2147483648
+ INT_FAST32_MAX = 2147483647
+ INT_FAST32_MIN = -2147483648
+ INT_FAST64_MAX = 9223372036854775807
+ INT_FAST64_MIN = -9223372036854775808
+ INT_FAST8_MAX = 2147483647
+ INT_FAST8_MIN = -2147483648
+ INT_LEAST16_MAX = 32767
+ INT_LEAST16_MIN = -32768
+ INT_LEAST32_MAX = 2147483647
+ INT_LEAST32_MIN = -2147483648
+ INT_LEAST64_MAX = 9223372036854775807
+ INT_LEAST64_MIN = -9223372036854775808
+ INT_LEAST8_MAX = 127
+ INT_LEAST8_MIN = -128
+ LITTLE_ENDIAN = 1234
+ NBBY = 8
+ NFDBITS = 32
+ NODEVMAJOR = -1
+ PDP_ENDIAN = 3412
+ PTRDIFF_MAX = 9223372036854775807
+ PTRDIFF_MIN = -9223372036854775808
+ SIG_ATOMIC_MAX = 2147483647
+ SIG_ATOMIC_MIN = -2147483648
+ SIZE_MAX = 18446744073709551615
+ UINT16_MAX = 65535
+ UINT32_MAX = 4294967295
+ UINT64_MAX = 18446744073709551615
+ UINT8_MAX = 255
+ UINTMAX_MAX = 18446744073709551615
+ UINTPTR_MAX = 18446744073709551615
+ UINT_FAST16_MAX = 4294967295
+ UINT_FAST32_MAX = 4294967295
+ UINT_FAST64_MAX = 18446744073709551615
+ UINT_FAST8_MAX = 4294967295
+ UINT_LEAST16_MAX = 65535
+ UINT_LEAST32_MAX = 4294967295
+ UINT_LEAST64_MAX = 18446744073709551615
+ UINT_LEAST8_MAX = 255
+ WCHAR_MAX = 0x7fffffff
+ WCHAR_MIN = -2147483648
+ WINT_MAX = 0x7fffffff
+ WINT_MIN = -2147483648
+ X_AMD64_BYTE_SWAP_H_ = 0
+ X_AMD64_INT_CONST_H_ = 0
+ X_AMD64_INT_LIMITS_H_ = 0
+ X_AMD64_INT_MWGWTYPES_H_ = 0
+ X_AMD64_INT_TYPES_H_ = 0
+ X_AMD64_WCHAR_LIMITS_H_ = 0
+ X_BIG_ENDIAN = 4321
+ X_BSD_INT16_T_ = 0
+ X_BSD_INT32_T_ = 0
+ X_BSD_INT64_T_ = 0
+ X_BSD_INT8_T_ = 0
+ X_BSD_INTPTR_T_ = 0
+ X_BSD_UINT16_T_ = 0
+ X_BSD_UINT32_T_ = 0
+ X_BSD_UINT64_T_ = 0
+ X_BSD_UINT8_T_ = 0
+ X_BSD_UINTPTR_T_ = 0
+ X_BYTE_ORDER = 1234
+ X_FILE_OFFSET_BITS = 64
+ X_LIB_PTHREAD_TYPES_H = 0
+ X_LITTLE_ENDIAN = 1234
+ X_LP64 = 1
+ X_NETBSD_SOURCE = 1
+ X_PDP_ENDIAN = 3412
+ X_PT_BARRIERATTR_DEAD = 0xDEAD0808
+ X_PT_BARRIERATTR_MAGIC = 0x88880808
+ X_PT_BARRIER_DEAD = 0xDEAD0008
+ X_PT_BARRIER_MAGIC = 0x88880008
+ X_PT_CONDATTR_DEAD = 0xDEAD0006
+ X_PT_CONDATTR_MAGIC = 0x66660006
+ X_PT_COND_DEAD = 0xDEAD0005
+ X_PT_COND_MAGIC = 0x55550005
+ X_PT_MUTEXATTR_DEAD = 0xDEAD0004
+ X_PT_MUTEXATTR_MAGIC = 0x44440004
+ X_PT_MUTEX_DEAD = 0xDEAD0003
+ X_PT_MUTEX_MAGIC = 0x33330003
+ X_PT_RWLOCKATTR_DEAD = 0xDEAD0909
+ X_PT_RWLOCKATTR_MAGIC = 0x99990909
+ X_PT_RWLOCK_DEAD = 0xDEAD0009
+ X_PT_RWLOCK_MAGIC = 0x99990009
+ X_PT_SPINLOCK_DEAD = 0xDEAD0007
+ X_PT_SPINLOCK_MAGIC = 0x77770007
+ X_PT_SPINLOCK_PSHARED = 0x00000001
+ X_QUAD_HIGHWORD = 1
+ X_QUAD_LOWWORD = 0
+ X_SIZE_T = 0
+ X_SYS_ANSI_H_ = 0
+ X_SYS_BSWAP_H_ = 0
+ X_SYS_CDEFS_ELF_H_ = 0
+ X_SYS_CDEFS_H_ = 0
+ X_SYS_COMMON_ANSI_H_ = 0
+ X_SYS_COMMON_INT_LIMITS_H_ = 0
+ X_SYS_COMMON_INT_MWGWTYPES_H_ = 0
+ X_SYS_COMMON_INT_TYPES_H_ = 0
+ X_SYS_ENDIAN_H_ = 0
+ X_SYS_FD_SET_H_ = 0
+ X_SYS_STDINT_H_ = 0
+ X_SYS_TYPES_H_ = 0
+ X_X86_64_BSWAP_H_ = 0
+ X_X86_64_CDEFS_H_ = 0
+ X_X86_64_TYPES_H_ = 0
+)
+
+type Ptrdiff_t = int64 /* <builtin>:3:26 */
+
+type Size_t = uint64 /* <builtin>:9:23 */
+
+type Wchar_t = int32 /* <builtin>:15:24 */
+
+type X__int128_t = struct {
+ Flo int64
+ Fhi int64
+} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
+type X__uint128_t = struct {
+ Flo uint64
+ Fhi uint64
+} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
+
+type X__builtin_va_list = uintptr /* <builtin>:46:14 */
+type X__float128 = float64 /* <builtin>:47:21 */
+
+// return true if value 'a' fits in type 't'
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $NetBSD: common_int_types.h,v 1.1 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Joerg Sonnenberger.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// 7.18.1 Integer types
+
+// 7.18.1.1 Exact-width integer types
+
+type X__int8_t = int8 /* common_int_types.h:45:27 */
+type X__uint8_t = uint8 /* common_int_types.h:46:27 */
+type X__int16_t = int16 /* common_int_types.h:47:27 */
+type X__uint16_t = uint16 /* common_int_types.h:48:27 */
+type X__int32_t = int32 /* common_int_types.h:49:27 */
+type X__uint32_t = uint32 /* common_int_types.h:50:27 */
+type X__int64_t = int64 /* common_int_types.h:51:27 */
+type X__uint64_t = uint64 /* common_int_types.h:52:27 */
+
+// 7.18.1.4 Integer types capable of holding object pointers
+
+type X__intptr_t = int64 /* common_int_types.h:58:27 */
+type X__uintptr_t = uint64 /* common_int_types.h:59:26 */
+
+type X__register_t = int64 /* types.h:68:19 */
+type X__cpu_simple_lock_nv_t = uint8 /* types.h:69:24 */
+
+// __cpu_simple_lock_t used to be a full word.
+
+// The amd64 does not have strict alignment requirements.
+
+// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $
+
+// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Matt Thomas of 3am Software Foundry.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// Types which are fundamental to the implementation and may appear in
+// more than one standard header are defined here. Standard headers
+// then use:
+// #ifdef _BSD_SIZE_T_
+// typedef _BSD_SIZE_T_ size_t;
+// #undef _BSD_SIZE_T_
+// #endif
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// $NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
+
+// -
+// Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Jun-ichiro itojun Hagino and by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: ansi.h,v 1.11 2019/05/07 03:49:26 kamil Exp $
+
+// $NetBSD: common_ansi.h,v 1.1 2014/08/19 07:27:31 matt Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Matt Thomas of 3am Software Foundry.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+type X__caddr_t = uintptr /* ansi.h:37:14 */ // core address
+type X__gid_t = X__uint32_t /* ansi.h:38:20 */ // group id
+type X__in_addr_t = X__uint32_t /* ansi.h:39:20 */ // IP(v4) address
+type X__in_port_t = X__uint16_t /* ansi.h:40:20 */ // "Internet" port number
+type X__mode_t = X__uint32_t /* ansi.h:41:20 */ // file permissions
+type X__off_t = X__int64_t /* ansi.h:42:19 */ // file offset
+type X__pid_t = X__int32_t /* ansi.h:43:19 */ // process id
+type X__sa_family_t = X__uint8_t /* ansi.h:44:19 */ // socket address family
+type X__socklen_t = uint32 /* ansi.h:45:22 */ // socket-related datum length
+type X__uid_t = X__uint32_t /* ansi.h:46:20 */ // user id
+type X__fsblkcnt_t = X__uint64_t /* ansi.h:47:20 */ // fs block count (statvfs)
+type X__fsfilcnt_t = X__uint64_t /* ansi.h:48:20 */
+type X__wctrans_t = uintptr /* ansi.h:51:32 */
+type X__wctype_t = uintptr /* ansi.h:54:31 */
+
+// mbstate_t is an opaque object to keep conversion state, during multibyte
+// stream conversions. The content must not be referenced by user programs.
+type X__mbstate_t = struct {
+ F__mbstateL X__int64_t
+ F__ccgo_pad1 [120]byte
+} /* ansi.h:63:3 */
+
+type X__va_list = X__builtin_va_list /* ansi.h:72:27 */
+
+type Int8_t = X__int8_t /* types.h:54:18 */
+
+type Uint8_t = X__uint8_t /* types.h:59:19 */
+
+type Int16_t = X__int16_t /* types.h:64:19 */
+
+type Uint16_t = X__uint16_t /* types.h:69:20 */
+
+type Int32_t = X__int32_t /* types.h:74:19 */
+
+type Uint32_t = X__uint32_t /* types.h:79:20 */
+
+type Int64_t = X__int64_t /* types.h:84:19 */
+
+type Uint64_t = X__uint64_t /* types.h:89:20 */
+
+type U_int8_t = Uint8_t /* types.h:93:18 */
+type U_int16_t = Uint16_t /* types.h:94:18 */
+type U_int32_t = Uint32_t /* types.h:95:18 */
+type U_int64_t = Uint64_t /* types.h:96:18 */
+
+// $NetBSD: endian.h,v 1.1 2003/04/26 18:39:40 fvdl Exp $
+
+// $NetBSD: endian.h,v 1.30 2016/02/27 21:37:35 christos Exp $
+
+// Copyright (c) 1987, 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)endian.h 8.1 (Berkeley) 6/11/93
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// Definitions for byte order, according to byte significance from low
+// address to high.
+
+// C-family endian-ness definitions
+
+// $NetBSD: ansi.h,v 1.14 2011/07/17 20:54:54 joerg Exp $
+
+// -
+// Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Jun-ichiro itojun Hagino and by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: types.h,v 1.102 2018/11/06 16:26:44 maya Exp $
+
+// -
+// Copyright (c) 1982, 1986, 1991, 1993, 1994
+// The Regents of the University of California. All rights reserved.
+// (c) UNIX System Laboratories, Inc.
+// All or some portions of this file are derived from material licensed
+// to the University of California by American Telephone and Telegraph
+// Co. or Unix System Laboratories, Inc. and are reproduced herein with
+// the permission of UNIX System Laboratories, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)types.h 8.4 (Berkeley) 1/21/94
+
+type In_addr_t = X__in_addr_t /* endian.h:58:21 */
+
+type In_port_t = X__in_port_t /* endian.h:63:21 */
+
+// $NetBSD: bswap.h,v 1.19 2015/03/12 15:28:16 christos Exp $
+
+// Written by Manuel Bouyer. Public domain
+
+// $NetBSD: stdint.h,v 1.8 2018/11/06 16:26:44 maya Exp $
+
+// -
+// Copyright (c) 2001, 2004 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+type Intptr_t = X__intptr_t /* stdint.h:79:20 */
+
+type Uintptr_t = X__uintptr_t /* stdint.h:84:21 */
+
+// $NetBSD: int_mwgwtypes.h,v 1.8 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 2001 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Klaus Klein.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// $NetBSD: common_int_mwgwtypes.h,v 1.1 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 2014 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Joerg Sonnenberger.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// 7.18.1 Integer types
+
+// 7.18.1.2 Minimum-width integer types
+
+type Int_least8_t = int8 /* common_int_mwgwtypes.h:45:32 */
+type Uint_least8_t = uint8 /* common_int_mwgwtypes.h:46:32 */
+type Int_least16_t = int16 /* common_int_mwgwtypes.h:47:32 */
+type Uint_least16_t = uint16 /* common_int_mwgwtypes.h:48:32 */
+type Int_least32_t = int32 /* common_int_mwgwtypes.h:49:32 */
+type Uint_least32_t = uint32 /* common_int_mwgwtypes.h:50:32 */
+type Int_least64_t = int64 /* common_int_mwgwtypes.h:51:32 */
+type Uint_least64_t = uint64 /* common_int_mwgwtypes.h:52:32 */
+
+// 7.18.1.3 Fastest minimum-width integer types
+type Int_fast8_t = int32 /* common_int_mwgwtypes.h:55:32 */
+type Uint_fast8_t = uint32 /* common_int_mwgwtypes.h:56:32 */
+type Int_fast16_t = int32 /* common_int_mwgwtypes.h:57:32 */
+type Uint_fast16_t = uint32 /* common_int_mwgwtypes.h:58:32 */
+type Int_fast32_t = int32 /* common_int_mwgwtypes.h:59:32 */
+type Uint_fast32_t = uint32 /* common_int_mwgwtypes.h:60:32 */
+type Int_fast64_t = int64 /* common_int_mwgwtypes.h:61:32 */
+type Uint_fast64_t = uint64 /* common_int_mwgwtypes.h:62:32 */
+
+// 7.18.1.5 Greatest-width integer types
+
+type Intmax_t = int64 /* common_int_mwgwtypes.h:66:33 */
+type Uintmax_t = uint64 /* common_int_mwgwtypes.h:67:32 */
+
+type U_char = uint8 /* types.h:101:23 */
+type U_short = uint16 /* types.h:102:24 */
+type U_int = uint32 /* types.h:103:22 */
+type U_long = uint64 /* types.h:104:23 */
+
+type Unchar = uint8 /* types.h:106:23 */ // Sys V compatibility
+type Ushort = uint16 /* types.h:107:24 */ // Sys V compatibility
+type Uint = uint32 /* types.h:108:22 */ // Sys V compatibility
+type Ulong = uint64 /* types.h:109:23 */ // Sys V compatibility
+
+type U_quad_t = Uint64_t /* types.h:112:18 */ // quads
+type Quad_t = Int64_t /* types.h:113:18 */
+type Qaddr_t = uintptr /* types.h:114:16 */
+
+// The types longlong_t and u_longlong_t exist for use with the
+// Sun-derived XDR routines involving these types, and their usage
+// in other contexts is discouraged. Further note that these types
+// may not be equivalent to "long long" and "unsigned long long",
+// they are only guaranteed to be signed and unsigned 64-bit types
+// respectively. Portable programs that need 64-bit types should use
+// the C99 types int64_t and uint64_t instead.
+
+type Longlong_t = Int64_t /* types.h:126:18 */ // for XDR
+type U_longlong_t = Uint64_t /* types.h:127:18 */ // for XDR
+
+type Blkcnt_t = Int64_t /* types.h:129:18 */ // fs block count
+type Blksize_t = Int32_t /* types.h:130:18 */ // fs optimal block size
+
+type Fsblkcnt_t = X__fsblkcnt_t /* types.h:133:22 */ // fs block count (statvfs)
+
+type Fsfilcnt_t = X__fsfilcnt_t /* types.h:138:22 */ // fs file count
+
+// We don't and shouldn't use caddr_t in the kernel anymore
+type Caddr_t = X__caddr_t /* types.h:145:19 */ // core address
+
+type Daddr_t = Int64_t /* types.h:154:18 */ // disk address
+
+type Dev_t = Uint64_t /* types.h:157:18 */ // device number
+type Fixpt_t = Uint32_t /* types.h:158:18 */ // fixed point number
+
+type Gid_t = X__gid_t /* types.h:161:18 */ // group id
+
+type Id_t = Uint32_t /* types.h:165:18 */ // group id, process id or user id
+type Ino_t = Uint64_t /* types.h:166:18 */ // inode number
+type Key_t = int64 /* types.h:167:15 */ // IPC key (for Sys V IPC)
+
+type Mode_t = X__mode_t /* types.h:170:18 */ // permissions
+
+type Nlink_t = Uint32_t /* types.h:174:18 */ // link count
+
+type Off_t = X__off_t /* types.h:177:18 */ // file offset
+
+type Pid_t = X__pid_t /* types.h:182:18 */ // process id
+type Lwpid_t = Int32_t /* types.h:185:18 */ // LWP id
+type Rlim_t = Uint64_t /* types.h:186:18 */ // resource limit
+type Segsz_t = Int32_t /* types.h:187:18 */ // segment size
+type Swblk_t = Int32_t /* types.h:188:18 */ // swap offset
+
+type Uid_t = X__uid_t /* types.h:191:18 */ // user id
+
+type Mqd_t = int32 /* types.h:195:14 */
+
+type Cpuid_t = uint64 /* types.h:197:23 */
+
+type Psetid_t = int32 /* types.h:199:14 */
+
+type X__cpu_simple_lock_t = X__cpu_simple_lock_nv_t /* types.h:201:41 */
+
+// Major, minor numbers, dev_t's.
+type X__devmajor_t = Int32_t /* types.h:255:17 */
+type X__devminor_t = Int32_t /* types.h:255:31 */
+
+type Clock_t = uint32 /* types.h:268:24 */
+
+type Ssize_t = int64 /* types.h:284:24 */
+
+type Time_t = X__int64_t /* types.h:289:23 */
+
+type Clockid_t = int32 /* types.h:294:26 */
+
+type Timer_t = int32 /* types.h:299:24 */
+
+type Suseconds_t = int32 /* types.h:304:27 */
+
+type Useconds_t = uint32 /* types.h:309:26 */
+
+// $NetBSD: fd_set.h,v 1.7 2018/06/24 12:05:40 kamil Exp $
+
+// -
+// Copyright (c) 1992, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 8.4 (Berkeley) 1/21/94
+
+// $NetBSD: cdefs.h,v 1.141 2019/02/21 21:34:05 christos Exp $
+
+// * Copyright (c) 1991, 1993
+// The Regents of the University of California. All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Berkeley Software Design, Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// @(#)cdefs.h 8.8 (Berkeley) 1/9/95
+
+// $NetBSD: featuretest.h,v 1.10 2013/04/26 18:29:06 christos Exp $
+
+// Written by Klaus Klein <kleink@NetBSD.org>, February 2, 1998.
+// Public domain.
+//
+// NOTE: Do not protect this header against multiple inclusion. Doing
+// so can have subtle side-effects due to header file inclusion order
+// and testing of e.g. _POSIX_SOURCE vs. _POSIX_C_SOURCE. Instead,
+// protect each CPP macro that we want to supply.
+
+// Feature-test macros are defined by several standards, and allow an
+// application to specify what symbols they want the system headers to
+// expose, and hence what standard they want them to conform to.
+// There are two classes of feature-test macros. The first class
+// specify complete standards, and if one of these is defined, header
+// files will try to conform to the relevant standard. They are:
+//
+// ANSI macros:
+// _ANSI_SOURCE ANSI C89
+//
+// POSIX macros:
+// _POSIX_SOURCE == 1 IEEE Std 1003.1 (version?)
+// _POSIX_C_SOURCE == 1 IEEE Std 1003.1-1990
+// _POSIX_C_SOURCE == 2 IEEE Std 1003.2-1992
+// _POSIX_C_SOURCE == 199309L IEEE Std 1003.1b-1993
+// _POSIX_C_SOURCE == 199506L ISO/IEC 9945-1:1996
+// _POSIX_C_SOURCE == 200112L IEEE Std 1003.1-2001
+// _POSIX_C_SOURCE == 200809L IEEE Std 1003.1-2008
+//
+// X/Open macros:
+// _XOPEN_SOURCE System Interfaces and Headers, Issue 4, Ver 2
+// _XOPEN_SOURCE_EXTENDED == 1 XSH4.2 UNIX extensions
+// _XOPEN_SOURCE == 500 System Interfaces and Headers, Issue 5
+// _XOPEN_SOURCE == 520 Networking Services (XNS), Issue 5.2
+// _XOPEN_SOURCE == 600 IEEE Std 1003.1-2001, XSI option
+// _XOPEN_SOURCE == 700 IEEE Std 1003.1-2008, XSI option
+//
+// NetBSD macros:
+// _NETBSD_SOURCE == 1 Make all NetBSD features available.
+//
+// If more than one of these "major" feature-test macros is defined,
+// then the set of facilities provided (and namespace used) is the
+// union of that specified by the relevant standards, and in case of
+// conflict, the earlier standard in the above list has precedence (so
+// if both _POSIX_C_SOURCE and _NETBSD_SOURCE are defined, the version
+// of rename() that's used is the POSIX one). If none of the "major"
+// feature-test macros is defined, _NETBSD_SOURCE is assumed.
+//
+// There are also "minor" feature-test macros, which enable extra
+// functionality in addition to some base standard. They should be
+// defined along with one of the "major" macros. The "minor" macros
+// are:
+//
+// _REENTRANT
+// _ISOC99_SOURCE
+// _ISOC11_SOURCE
+// _LARGEFILE_SOURCE Large File Support
+// <http://ftp.sas.com/standards/large.file/x_open.20Mar96.html>
+
+// $NetBSD: int_types.h,v 1.7 2014/07/25 21:43:13 joerg Exp $
+
+// -
+// Copyright (c) 1990 The Regents of the University of California.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+//
+// from: @(#)types.h 7.5 (Berkeley) 3/9/91
+
+// Implementation dependent defines, hidden from user space.
+// POSIX does not specify them.
+
+type X__fd_mask = X__uint32_t /* fd_set.h:46:20 */
+
+// 32 = 2 ^ 5
+
+// Select uses bit fields of file descriptors. These macros manipulate
+// such bit fields. Note: FD_SETSIZE may be defined by the user.
+
+type Fd_set1 = struct{ Ffds_bits [8]X__fd_mask } /* fd_set.h:66:9 */
+
+// 32 = 2 ^ 5
+
+// Select uses bit fields of file descriptors. These macros manipulate
+// such bit fields. Note: FD_SETSIZE may be defined by the user.
+
+type Fd_set = Fd_set1 /* fd_set.h:68:3 */
+
+// Expose our internals if we are not required to hide them.
+
+type Kauth_cred_t = uintptr /* types.h:318:27 */
+
+type Pri_t = int32 /* types.h:320:13 */
+
+// $NetBSD: pthread_types.h,v 1.23 2017/09/09 23:21:45 kamil Exp $
+
+// -
+// Copyright (c) 2001, 2008 The NetBSD Foundation, Inc.
+// All rights reserved.
+//
+// This code is derived from software contributed to The NetBSD Foundation
+// by Nathan J. Williams.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+// ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+// We use the "pthread_spin_t" name internally; "pthread_spinlock_t" is the
+// POSIX spinlock object.
+//
+// C++ expects to be using PTHREAD_FOO_INITIALIZER as a member initializer.
+// This does not work for volatile types. Since C++ does not touch the guts
+// of those types, we do not include volatile in the C++ definitions.
+type Pthread_spin_t = X__cpu_simple_lock_t /* pthread_types.h:43:29 */
+type X__pthread_spin_t = Pthread_spin_t /* pthread_types.h:48:24 */
+
+// Copied from PTQ_HEAD in pthread_queue.h
+
+type Pthread_queue_struct_t = struct {
+ Fptqh_first uintptr
+ Fptqh_last uintptr
+} /* pthread_types.h:61:1 */
+
+type Pthread_queue_t = Pthread_queue_struct_t /* pthread_types.h:62:39 */
+type X__pthread_attr_st = struct {
+ Fpta_magic uint32
+ Fpta_flags int32
+ Fpta_private uintptr
+} /* pthread_types.h:65:1 */
+
+type X__pthread_mutex_st = struct {
+ Fptm_magic uint32
+ Fptm_errorcheck X__pthread_spin_t
+ Fptm_pad1 [3]Uint8_t
+ F__8 struct{ Fptm_ceiling uint8 }
+ Fptm_pad2 [3]Uint8_t
+ F__ccgo_pad1 [4]byte
+ Fptm_owner Pthread_t
+ Fptm_waiters uintptr
+ Fptm_recursed uint32
+ F__ccgo_pad2 [4]byte
+ Fptm_spare2 uintptr
+} /* pthread_types.h:66:1 */
+
+type X__pthread_mutexattr_st = struct {
+ Fptma_magic uint32
+ F__ccgo_pad1 [4]byte
+ Fptma_private uintptr
+} /* pthread_types.h:67:1 */
+
+type X__pthread_cond_st = struct {
+ Fptc_magic uint32
+ Fptc_lock X__pthread_spin_t
+ F__ccgo_pad1 [3]byte
+ Fptc_waiters Pthread_queue_t
+ Fptc_mutex uintptr
+ Fptc_private uintptr
+} /* pthread_types.h:68:1 */
+
+type X__pthread_condattr_st = struct {
+ Fptca_magic uint32
+ F__ccgo_pad1 [4]byte
+ Fptca_private uintptr
+} /* pthread_types.h:69:1 */
+
+type X__pthread_rwlock_st = struct {
+ Fptr_magic uint32
+ Fptr_interlock X__pthread_spin_t
+ F__ccgo_pad1 [3]byte
+ Fptr_rblocked Pthread_queue_t
+ Fptr_wblocked Pthread_queue_t
+ Fptr_nreaders uint32
+ F__ccgo_pad2 [4]byte
+ Fptr_owner Pthread_t
+ Fptr_private uintptr
+} /* pthread_types.h:71:1 */
+
+type X__pthread_rwlockattr_st = struct {
+ Fptra_magic uint32
+ F__ccgo_pad1 [4]byte
+ Fptra_private uintptr
+} /* pthread_types.h:72:1 */
+
+type X__pthread_barrier_st = struct {
+ Fptb_magic uint32
+ Fptb_lock Pthread_spin_t
+ F__ccgo_pad1 [3]byte
+ Fptb_waiters Pthread_queue_t
+ Fptb_initcount uint32
+ Fptb_curcount uint32
+ Fptb_generation uint32
+ F__ccgo_pad2 [4]byte
+ Fptb_private uintptr
+} /* pthread_types.h:73:1 */
+
+type X__pthread_barrierattr_st = struct {
+ Fptba_magic uint32
+ F__ccgo_pad1 [4]byte
+ Fptba_private uintptr
+} /* pthread_types.h:74:1 */
+
+type Pthread_t = uintptr /* pthread_types.h:76:29 */
+type Pthread_attr_t = X__pthread_attr_st /* pthread_types.h:77:34 */
+type Pthread_mutex_t = X__pthread_mutex_st /* pthread_types.h:78:35 */
+type Pthread_mutexattr_t = X__pthread_mutexattr_st /* pthread_types.h:79:39 */
+type Pthread_cond_t = X__pthread_cond_st /* pthread_types.h:80:34 */
+type Pthread_condattr_t = X__pthread_condattr_st /* pthread_types.h:81:38 */
+type X__pthread_once_st = struct {
+ Fpto_mutex Pthread_mutex_t
+ Fpto_done int32
+ F__ccgo_pad1 [4]byte
+} /* pthread_types.h:82:9 */
+
+type Pthread_once_t = X__pthread_once_st /* pthread_types.h:82:34 */
+type X__pthread_spinlock_st = struct {
+ Fpts_magic uint32
+ Fpts_spin X__pthread_spin_t
+ F__ccgo_pad1 [3]byte
+ Fpts_flags int32
+} /* pthread_types.h:83:9 */
+
+type Pthread_spinlock_t = X__pthread_spinlock_st /* pthread_types.h:83:38 */
+type Pthread_rwlock_t = X__pthread_rwlock_st /* pthread_types.h:84:36 */
+type Pthread_rwlockattr_t = X__pthread_rwlockattr_st /* pthread_types.h:85:40 */
+type Pthread_barrier_t = X__pthread_barrier_st /* pthread_types.h:86:37 */
+type Pthread_barrierattr_t = X__pthread_barrierattr_st /* pthread_types.h:87:41 */
+type Pthread_key_t = int32 /* pthread_types.h:88:13 */
+
+var _ int8 /* gen.c:2:13: */
diff --git a/vendor/modernc.org/libc/sys/types/types_windows_386.go b/vendor/modernc.org/libc/sys/types/types_windows_386.go
index d69ab047b..25487bb49 100644
--- a/vendor/modernc.org/libc/sys/types/types_windows_386.go
+++ b/vendor/modernc.org/libc/sys/types/types_windows_386.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_windows_386.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_windows_386.go -pkgname types', DO NOT EDIT.
package types
@@ -32,9 +32,7 @@ const (
DUMMYUNIONNAME8 = 0
DUMMYUNIONNAME9 = 0
MINGW_DDK_H = 0
- MINGW_DDRAW_VERSION = 7
MINGW_HAS_DDK_H = 1
- MINGW_HAS_DDRAW_H = 1
MINGW_HAS_SECURE_API = 1
MINGW_SDK_INIT = 0
UNALIGNED = 0
@@ -56,11 +54,14 @@ const (
X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES = 0
X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT = 0
X_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY = 0
+ X_CRT_USE_WINAPI_FAMILY_DESKTOP_APP = 0
X_DEV_T_DEFINED = 0
X_DLL = 0
X_ERRCODE_DEFINED = 0
X_FILE_OFFSET_BITS = 64
X_FILE_OFFSET_BITS_SET_OFFT = 0
+ X_ILP32 = 1
+ X_INC_CORECRT = 0
X_INC_CRTDEFS = 0
X_INC_CRTDEFS_MACRO = 0
X_INC_MINGW_SECAPI = 0
@@ -136,6 +137,11 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */
// This file is part of the mingw-w64 runtime package.
// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+// *
+// This file has no copyright assigned and is placed in the Public Domain.
+// This file is part of the mingw-w64 runtime package.
+// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+
// This macro holds an monotonic increasing value, which indicates
// a specific fix/patch is present on trunk. This value isn't related to
// minor/major version-macros. It is increased on demand, if a big
@@ -156,6 +162,12 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */
// MinGW-w64 has some additional C99 printf/scanf feature support.
// So we add some helper macros to ease recognition of them.
+// If _FORTIFY_SOURCE is enabled, some inline functions may use
+// __builtin_va_arg_pack(). GCC may report an error if the address
+// of such a function is used. Set _FORTIFY_VA_ARG=0 in this case.
+
+// Enable workaround for ABI incompatibility on affected platforms
+
// *
// This file has no copyright assigned and is placed in the Public Domain.
// This file is part of the mingw-w64 runtime package.
@@ -196,26 +208,28 @@ type Va_list = X__builtin_va_list /* <builtin>:50:27 */
// This file is part of the mingw-w64 runtime package.
// No warranty is given; refer to the file DISCLAIMER.PD within this package.
+// for backward compatibility
+
type X__gnuc_va_list = X__builtin_va_list /* vadefs.h:24:29 */
-type Ssize_t = int32 /* crtdefs.h:47:13 */
+type Ssize_t = int32 /* corecrt.h:52:13 */
-type Rsize_t = Size_t /* crtdefs.h:52:16 */
+type Rsize_t = Size_t /* corecrt.h:57:16 */
-type Intptr_t = int32 /* crtdefs.h:64:13 */
+type Intptr_t = int32 /* corecrt.h:69:13 */
-type Uintptr_t = uint32 /* crtdefs.h:77:22 */
+type Uintptr_t = uint32 /* corecrt.h:82:22 */
-type Wint_t = uint16 /* crtdefs.h:106:24 */
-type Wctype_t = uint16 /* crtdefs.h:107:24 */
+type Wint_t = uint16 /* corecrt.h:111:24 */
+type Wctype_t = uint16 /* corecrt.h:112:24 */
-type Errno_t = int32 /* crtdefs.h:113:13 */
+type Errno_t = int32 /* corecrt.h:118:13 */
-type X__time32_t = int32 /* crtdefs.h:118:14 */
+type X__time32_t = int32 /* corecrt.h:123:14 */
-type X__time64_t = int64 /* crtdefs.h:123:35 */
+type X__time64_t = int64 /* corecrt.h:128:35 */
-type Time_t = X__time32_t /* crtdefs.h:136:20 */
+type Time_t = X__time32_t /* corecrt.h:141:20 */
type Threadlocaleinfostruct = struct {
Frefcount int32
@@ -241,29 +255,29 @@ type Threadlocaleinfostruct = struct {
Fpclmap uintptr
Fpcumap uintptr
Flc_time_curr uintptr
-} /* crtdefs.h:422:1 */
+} /* corecrt.h:435:1 */
-type Pthreadlocinfo = uintptr /* crtdefs.h:424:39 */
-type Pthreadmbcinfo = uintptr /* crtdefs.h:425:36 */
+type Pthreadlocinfo = uintptr /* corecrt.h:437:39 */
+type Pthreadmbcinfo = uintptr /* corecrt.h:438:36 */
type Localeinfo_struct = struct {
Flocinfo Pthreadlocinfo
Fmbcinfo Pthreadmbcinfo
-} /* crtdefs.h:428:9 */
+} /* corecrt.h:441:9 */
-type X_locale_tstruct = Localeinfo_struct /* crtdefs.h:431:3 */
-type X_locale_t = uintptr /* crtdefs.h:431:19 */
+type X_locale_tstruct = Localeinfo_struct /* corecrt.h:444:3 */
+type X_locale_t = uintptr /* corecrt.h:444:19 */
type TagLC_ID = struct {
FwLanguage uint16
FwCountry uint16
FwCodePage uint16
-} /* crtdefs.h:422:1 */
+} /* corecrt.h:435:1 */
-type LC_ID = TagLC_ID /* crtdefs.h:439:3 */
-type LPLC_ID = uintptr /* crtdefs.h:439:9 */
+type LC_ID = TagLC_ID /* corecrt.h:452:3 */
+type LPLC_ID = uintptr /* corecrt.h:452:9 */
-type Threadlocinfo = Threadlocaleinfostruct /* crtdefs.h:468:3 */
+type Threadlocinfo = Threadlocaleinfostruct /* corecrt.h:487:3 */
type X_ino_t = uint16 /* types.h:43:24 */
type Ino_t = uint16 /* types.h:45:24 */
diff --git a/vendor/modernc.org/libc/sys/types/types_windows_amd64.go b/vendor/modernc.org/libc/sys/types/types_windows_amd64.go
index dfe772ff6..cf0d07b9c 100644
--- a/vendor/modernc.org/libc/sys/types/types_windows_amd64.go
+++ b/vendor/modernc.org/libc/sys/types/types_windows_amd64.go
@@ -1,4 +1,4 @@
-// Code generated by 'ccgo sys/types/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_windows_amd64.go -pkgname types', DO NOT EDIT.
+// Code generated by 'ccgo sys\types\gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys\types\types_windows_amd64.go -pkgname types', DO NOT EDIT.
package types
@@ -83,6 +83,7 @@ const (
X_PID_T_ = 0
X_PTRDIFF_T_ = 0
X_PTRDIFF_T_DEFINED = 0
+ X_REENTRANT = 1
X_RSIZE_T_DEFINED = 0
X_SECURECRT_FILL_BUFFER_PATTERN = 0xFD
X_SIGSET_T_ = 0
@@ -302,21 +303,21 @@ type Off_t = Off64_t /* _mingw_off_t.h:24:17 */
type Useconds_t = uint32 /* types.h:84:22 */
type Timespec = struct {
- Ftv_sec Time_t
- Ftv_nsec int32
- _ [4]byte
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
} /* types.h:89:1 */
type Itimerspec = struct {
Fit_interval struct {
- Ftv_sec Time_t
- Ftv_nsec int32
- _ [4]byte
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
}
Fit_value struct {
- Ftv_sec Time_t
- Ftv_nsec int32
- _ [4]byte
+ Ftv_sec Time_t
+ Ftv_nsec int32
+ F__ccgo_pad1 [4]byte
}
} /* types.h:94:1 */